백준/단계별로 풀어보기

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

C6H12O6 2020. 3. 6. 17:55

 

이 포스팅에서는 백준 알고리즘 사이트 1110번을 파이썬으로 코딩해보도록 하겠습니다.

 

 

 

 

이번 문제는 0~~99인 정수 N을 입력받고 사이클을 돌려 만들어진 새로운 수가 N과 같아지면 사이클 길이를 출력하면 되는 문제입니다.

 

사이클은  

1. N < 10 이면 N앞에 0을 붙여 두자리수로 만듦. N >= 10 이면 그냥 진행.

2. N이 AB(A가 십의자리수, B가 일의자리수)일때 B=A+B, A=B 으로 변환.

 

예시) N = 26.

2(A) + 6(B) = 8   -> B = 2 + 6, A = 6

새로운수 = 68

 

num = str(input())
 
cycle = 0
 
if int(num) < 10:
    num = "0" + num 
 
new = num
 
while True:
    a = int(new[0]) + int(new[1])
    a = str(a)
    if int(a)<10:
        new = new[1+ str(a)
    else:
        new = new[1+ a[1]
 
    if new == num:
        print(cycle+1, end="")
        break
    else:
        cycle += 1
cs

 

제 실력이 부족해 코드가 상당히 지저분합니다ㅠㅠ