https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
내 풀이
31120kb 48ms
num = first_num = input()
cnt = 0
while True:
if int(num) < 10:
num = num[-1]*2
cnt += 1
else:
temp = str(int(num[0])+int(num[1]))
num = num[1]+ temp[-1]
cnt += 1
if int(num) == int(first_num):
break
print(cnt)
메모
아래와 같이 각 숫자 자리의 값을 % 10, // 10 을 통해 고려해볼 수도 있음
sum = (num // 10) + (num % 10)
temp = (num % 10) * 10 + (sum % 10)
num = temp
cnt += 1
'파이썬 알고리즘 연습' 카테고리의 다른 글
[Python | 백준 1681번] 줄 세우기 (0) | 2024.01.19 |
---|---|
[Python | 백준 1145번] 적어도 대부분의 배수 (1) | 2024.01.19 |
[백준 1673번] 치킨 쿠폰 (0) | 2024.01.18 |
[백준 1037번] 약수 (0) | 2024.01.17 |
[백준 1032번] 명령 프롬프트 / 브론즈1 시작 (0) | 2024.01.17 |