코딩공부/백준 (python)
[백준 1110] 더하기 사이클 (Python)
CodingKwon
2022. 2. 20. 23:14
문제 링크
https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
나의 코드 (Python)
N = int(input())
tmp = N # while문에서 변경될 변수
a = 0 # 십의 자리 변수
b = 0 # 일의 자리 변수
c = 0 # a+b 결과를 담을 변수
cnt = 0 # 연산 횟수
while True:
if tmp < 10:
# 10보다 작은 경우 십의 자리에 0을 셋팅하여 연산
a = 0
b = tmp
c = a + b
else:
# 10보다 큰 경우는 십의 자리와 일의 자리를 분리하여 자리의 합을 구함
a = tmp // 10
b = tmp % 10
c = a + b
cnt += 1 # 연산 카운팅
tmp = b * 10 + c % 10 # 일의 자리를 십의 자리로, 덧셈 결과의 일의 자리를 일의 자리로
if tmp == N: # tmp와 N이 같으면 반복문 종료, 결과 출력
print(cnt)
break
문제의 핵심은 십의 자리 숫자와 일의 자리 숫자를 분리하는 방법입니다.
십의 자리수 : N // 10
일의 자리수 : N % 10