코드를 작성하기 전에 제일 먼저 주어진 요구사항을 파악했습니다.
문제에 적힌 조건대로만 풀어주면 되는 문제여서 그대로 구현하자고 생각했습니다.
앞자리 숫자를 front, 뒷자리 숫자를 back이라 두고 연산을 시행한 횟수를 count에 담기로 했습니다. 최소 1번의 연산은 필요하기 때문에 count는 1로 초기화했습니다.
n = int(input())
count = 1
front, back = n // 10, n % 10
front = (front + back) % 10
new_num = back * 10 + front
while new_num != n:
front = new_num // 10;
back = new_num % 10
front = (front + back) % 10
new_num = 10*back + front
count += 1
print(count)
막혔던 점은 크게 없었습니다. 주어진 조건에 따라서 코드를 작성했습니다. 처음에는 코드를 아래처럼 작성했습니다.
n = int(input())
count = 1
front, back = n // 10, n % 10
if n < 10:
front = n
back = n
else:
front = n // 10;
back = n % 10
front = (front + back) % 10
new_num = back * 10 + front
while new_num != n:
if new_num < 10:
front = new_num
back = new_num
else:
front = new_num // 10;
back = new_num % 10
front = (front + back) % 10
new_num = 10*back + front
count += 1
print(count)
중복되는 부분을 제거해주면서 코드를 간결하게 만들었습니다.
문제를 처음 봤을 때, 요구사항이 뭔지 잘 파악하면 언뜻보기에 까다로워보이는 문제도 금방 해결할 수 있다는 것을 알았고, 차근차근 풀면 된다는 걸 배웠습니다.