본문 바로가기
알고리즘

백준 1110번 파이썬 : 더하기 사이클

by 새우하이 2020. 8. 14.

 

해당 문제는 입력받은 숫자를 10의 자리와 1의 자리로 나눠서 1의자리값과 10의자리와 1의자리를 더한 값의 1의자리를 계속해서 더해나가다

처음의 숫자를 찾아내는 문제이다.

 

import sys
count = 0

n = num = int(sys.stdin.readline())

while(True):
    ten = n // 10
    one = n % 10
    total = ten + one
    count += 1
    n = int(str(n % 10) + str(total % 10))
    if (num == n):
        break

print(count)

 우선 입력 받은 값을 두개의 변수에 할당한다.

하나는 자릿수로 나눠담을 변수고, 하나는 끝에 찾아낼 변수

 

그다음 while문 내부에

10의자리를 담을 ten 에는 n을 10으로 나눠 나오는 정수 값을 담고

1의 자리를 담는 one에는 10으로 나눠 남은 나머지 를 담는다

 

26을 예로들면

 

 

ten + one 은 새로 만들어진 수(total) 가 되고

n은 다시 기존 n의 1의자리 수와 total의 1의 자리수를 더한 값을 n에 담는다

이런 식으로 진행하다 n과 num이 다시 같은 값을 가지게 되면

break 로 빠져나오며 

count 값을 출력

댓글