본문 바로가기
DEV/백준 알고리즘

백준 알고리즘 1110번(파이썬)

by 올커 2022. 9. 25.

 

 

백준 1110번_파이썬 알고리즘

Q. 백준 1110. 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수를 입력받아 다음의 연산을 하는 프로그램을 작성한다.

 - 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리수로 만들고, 각 자리의 숫자를 더한다.

 - 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어붙여 새로운 수를 만든다.

 - 이 때, N이 주어질 경우 N의 사이클의 길이를 구하는 프로그램을 작성
(1) 입력 : 첫째 줄에 N을 입력받는다. (0 ≤ N ≤ 99, N은 정수)
(2) 출력 : 첫째 줄에 N의 사이클 길이를 출력한다.


A. 풀이

# Q 백준 1110. 더하기 사이클 ★★★★★
num = input()
cnt = 0
num_1st = num

if int(num)//10 > 0:
    sum = str(int(num[0]) + int(num[1]))
    new_num = num[-1] + sum[-1]
else:
    num_1st = "0"+num
    new_num = num[0] + num[0]

num = new_num
cnt += 1

while True:
    if num != num_1st:
        sum = str(int(num[0]) + int(num[-1]))
        new_num = num[-1] + sum[-1]
        num = new_num
        cnt += 1
    else:
        print(cnt)
        break

R. 리뷰

 - input으로 받은 num값의 자리수가 한자리일 때 초기값 num_1st값을 "0"+num으로 변경하지 않을 경우 while문이 무한으로 반복될 수 있으니 주의해야 한다. (ex. num_1st은 1이지만, while문에서 num은 01이므로 다른 값으로 인식)

반응형

댓글