백준 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이므로 다른 값으로 인식)
반응형
'DEV > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 10818번(파이썬) (0) | 2022.09.27 |
---|---|
백준 알고리즘 10871번(파이썬) (0) | 2022.09.26 |
백준 알고리즘 10950번, 10951번, 10952번(파이썬) (0) | 2022.09.24 |
백준 알고리즘 2753번(파이썬) (0) | 2022.09.23 |
백준 알고리즘 11021번, 11022번(파이썬) (1) | 2022.09.22 |
댓글