STUDY_SEONMIN

1110. 더하기 사이클 본문

STUDY/Baekjoon Algorithm

1110. 더하기 사이클

Kululu_ 2021. 7. 1. 10:20

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