[백준 1110번] 더하기 사이클

2020. 7. 8. 13:10Algorithm/practice

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

 

1110번: 더하기 사이클

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

www.acmicpc.net

리스트 자료형을 사용하였다. 사용자가 입력한 수를 1자리씩 리스트 'firstNumbers'에 split하여 넣었다. 리스트 'firstNumbers'의 길이가 2가 아니면 해당 리스트 맨 뒤에 0을 추가해준다. 변수 cnt는 사이클 횟수를 기록한다. loop가 돌면서 리스트 numbers의 두 개 요소가 다음과 같이 변한다.

기존 숫자의 일의 자리수 +  기존 숫자에 대한 '십의 자리수와 일의 자리수의 합'의 일의 자리 수

firstNumbers = list(map(int,input()))
if len(firstNumbers) != 2:
    firstNumbers.append(0)
cnt, numbers = 0, firstNumbers[:]
while True:
    cnt += 1
    new = sum(numbers) % 10
    numbers = [numbers[1], new]
    if numbers == firstNumbers:
        break
print(cnt)

'Algorithm > practice' 카테고리의 다른 글

[백준 2446번] 별찍기-2446  (0) 2020.07.08
[백준 2523번] 별찍기-13  (0) 2020.07.08
[백준 10996번] 별찍기-21  (0) 2020.07.08
[백준 9093] 단어 뒤집기  (0) 2020.07.02
[백준 11279번] 최대 힙  (0) 2020.05.28