김두두의 블로그

[파이썬] 백준 1110번 더하기 사이클 본문

it

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

두두100 2022. 3. 11. 23:56

https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

처음에 백준 다시 풀기 시작했을 때 이 문제 시도하다가 엄청 막혔는데 그 간에 그래도 몇 번 풀었다고 5분도 안돼서 바로 풀었다. 뿌듯하다. 앞으로도 한문제라도 하루에 꾸준히 풀어야지.

x=int(input())
k=0
n=0
if x<10:
    n=1
    k=x*10+x
    while k!=x:
        n=n+1
        k=(k%10)*10+((k//10)+(k%10))%10

else:
    n=1
    k=(x%10)*10+((x//10)+(x%10))%10
    while k!=x:
        n=n+1
        k=(k%10)*10+((k//10)+(k%10))%10
print(n)

처음 입력 받을 때 10보다 작은 수를 어떻게 처리할까를 못풀었을 당시에는 많이 고민했었는데, 아예 이렇게 케이스 나눠서 첫번째는 k에 아예 값을 지정한 후 돌리는 게 지금까지의 내 생각 중엔 가장 빨리 풀렸다. 

else 문에서 처음에 k에 값 넣을 때 x가 아니라 k에 대한 식으로 잘못 써서 값이 안나와 당황했는데 빨리 발견해서 다행이다.