백준 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