
예시:
• 26
• 2+6=8 → 68
• 6+8=14 → 84
• 8+4=12 → 42
• 4+2=6 → 26
• 총 4번 → 출력: 4
N = int(input())
cnt = 0
num = 0
c = [int(i) for i in str(N)]
while N != num:
cnt += 1
if sum(c) > 10 :
c.append(sum(c)-10)
else :
c.append(sum(c))
c.pop(0)
num = int("".join(map(str, c)))
print(cnt)
while N != num: 조건 때문에 처음 루프를 돌지 못함sum(c) > 10 조건도 10일 때 오류 (10은 그대로 써야 하므로 >= 10이 맞음)N = int(input())
cnt = 0
c = [int(i) for i in str(N).zfill(2)] # 항상 두 자리로 패딩
while True:
cnt += 1
s = sum(c)
c.append(s % 10) # 합의 일의 자리만 사용
c.pop(0)
num = int("".join(map(str, c)))
if num == N:
break
print(cnt)
zfill(2)로 항상 두 자리로 만들어 IndexError 방지while True + break 로 사이클을 안정적으로 돌 수 있게 개선s % 10 사용으로 1의 자리만 뽑는 간결한 표현!str(N).zfill(2) → N = 5일 때 '05'로 만들어서 [0, 5]로 변환해주는 메서드