백준 1110 파이썬
2023. 1. 23. 00:41ㆍ백준 알고리즘
https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
브론즈 1에 해당하는 문제로, 생각보다는 까다롭다.
input_data = int(input())
answer = input_data
first_num = 0
new_num = 0
frequency = 0
while True:
first_num = input_data // 10 + input_data % 10
new_num = (input_data % 10) * 10 + first_num % 10
frequency += 1
input_data = new_num
if new_num == answer:
break
print(frequency)
이 문제에서 가장 중요한 것은 문제에서 말하는 연산을 어떻게 코드로 나타낼 것이다다. 먼저, while 문을 사용하여 맨 처음 숫자와 연산을 거친후의 수가 똑같을 때, while 문을 종료하고 그 횟수를 프린트하기로 했다. while 문 안에서는 입력받은 데이터를 10으로 나누는 과정을 거치며 새로운 수를 구해주었고, 다음 숫자가 될 수도 10의 연산을 통해 구해주었다.
'백준 알고리즘' 카테고리의 다른 글
백준 4344 파이썬 (0) | 2023.01.23 |
---|---|
백준 1546 파이썬 (2) | 2023.01.23 |
백준 8958 파이썬 (1) | 2023.01.22 |
백준 10818 파이썬 (0) | 2023.01.22 |
백준 2562 파이썬 (0) | 2023.01.22 |