본문 바로가기
Problem Solving/boj.kr (Python)

[BOJ / 파이썬] 1110 : 더하기 사이클

by hoiiiii 2022. 2. 6.

문제 : https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

 

Sol ) 문제 조건대로 구현하는 문제

 

1. 수가 한 자릿수일 경우 (10보다 작을 경우) 새로운 수는 자기 자신

2. 수가 10보다 클 경우 새로운 수는 각 자릿수의 

3. 기존의 수의 일의 자리 ( %10 )과 새로운 수의 일의 자리 (%10)을 이어 붙여서 수를 갱신

4. 1~3 과정을 1 사이클로 측정

5. 갱신된 수가 처음의 수와 같아지면 로직을 종료

 

소스코드 )

num = target = int(input());
cnt = 0
while True:
    if num<10:
        new_num = num
    else:
        new_num = num%10 + num//10
    num = (num%10)*10 + new_num%10
    cnt += 1
    if num == target:
        break
print(cnt)

댓글