여태까지 파이썬 공부하면서 while문의 사용법이 뚜렷하게 와닿지 않았었는데 이번 문제 풀면서 조금 감이 잡히기 시작했다.
자바스크립트로 쓸 때는 이렇게까지 헷갈리지 않았던거 같은데.. 아마 다시 Js로 넘어가면 또 헷갈릴 듯 싶다.
우선 굉장한 시간을 잡아먹은 부분은 문제의 두 번째 줄.. 주어진 수가 10보다 작을 때 앞 자리에 0을 넣어 두 자리 수로 맞춰줘야 한다길래 당연히 문자열로 만들어 푸는 문제인 줄 알았으나.. 뜻대로 되지 않아 검색해 본 결과 고려하지 않아도 되는 조건이며 정수로도 풀 수 있는 문제였다.
n = int(input())
num = n
count = 0
while True:
a = num // 10
b = num % 10
x = (a + b) % 10
num = (b * 10) + x
count += 1
if (num == n):
break
print(count)
이렇게 생각하면 되겠다.
while문을 돌려 num의 값이 첫 입력값과 같아질 때 빠져나오는 탈출 조건을 만들고, 한 번 while문이 돌때마다 count 횟수를 하나씩 추가해 카운팅하는 방식.
앞서 말한 고려하지 않아도 되는 부분의 이유는 n의 값이 한 자리 수인 경우 num의 a자리 수를 구할 때 0이 입력되고, 어차피 a + b의 부분에서 더하기라면 오류가 날 걱정이 없었던 것이다.
이번 문제 또한 풀만 한 것 같은데?란 안일한 생각과 함께한 바이다..