문제 : 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)
'Problem Solving > boj.kr (Python)' 카테고리의 다른 글
[BOJ / 파이썬] 2562 : 최댓값 (0) | 2022.02.07 |
---|---|
[BOJ / 파이썬] 10818 : 최소, 최대 (0) | 2022.02.06 |
[BOJ / 파이썬] 10951 : A+B - 4 (0) | 2022.02.06 |
[BOJ / 파이썬] 10952 : A+B - 5 (0) | 2022.02.06 |
[BOJ / 파이썬] 10871 : X보다 작은 수 (0) | 2022.02.06 |
댓글