STUDY_SEONMIN
1110. 더하기 사이클 본문
0~99사이의 숫자가 주어질 때 다음과 같은 연산을 합니다.
우선 주어진 숫자가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고 각 자리의 숫자를 더합니다.
그 다음 주어진 수의 가장 오른쪽 자리 수와 방금 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만듭니다.
ex) 26, (2+6=8), 68, (6+8=14), 84, (8+4=12), 42, (4+2=6), 26
이렇게 위에서 언급한 연산을 반복할 경우 26은 4번만에 원래의 수로 돌아오게 되며 이것을 보고 사이클의 길이가 4라고합니다.
0~99사이의 임의의 숫자 N이 주어졌을 때 N의 사이클의 길이를 구하는 프로그램을 작성하세요.
def calculator(number):
if number < 10:
return 10*number + number
else:
return (number%10)*10+(number//10+number%10)%10
N = int(input())
a = N
cnt = 0
while True:
a = calculator(a)
cnt += 1
if a == N:
break
print(cnt)
- while문이 한 번 반복될 때 마다 사이클을 1회씩 더해주어야 하므로 사이클을 계산하는 변수는 while문 바깥에서 선언되어야 합니다.
- 처음 입력받은 변수 N은 한 사이클마다 나오는 결과값과 비교를 해야하기 때문에 사이클에 들어갈 변수 a를 추가로 만들어 주어야 합니다.
'STUDY > Baekjoon Algorithm' 카테고리의 다른 글
2562. 최대값 (0) | 2021.07.01 |
---|---|
10818. 최소, 최대 (0) | 2021.07.01 |
10951. A+B - 4 (0) | 2021.07.01 |
10952. A+B - 5 (0) | 2021.07.01 |
10871. X보다 작은 수 (0) | 2021.06.30 |
Comments