본문 바로가기
코딩공부/백준 (python)

[백준 1110] 더하기 사이클 (Python)

by CodingKwon 2022. 2. 20.

문제 링크

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

 

 

댓글