CodingTest/Baekjoon

[baekjoon] 백준 1110번(파이썬): 더하기 사이클

JunJangE 2021. 9. 7. 14:25

문제

 

1110번: 더하기 사이클

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

www.acmicpc.net

알고리즘

- 두 정수를 더할 때는 int로 더한다.

- 두 정수를 붙일 때는 str으로 붙인다.

코드

import sys

n = str(sys.stdin.readline())
res = []
cnt = 0
print(n)
# 입력받은 정수가 두자릿수이면 1의 자리 수의 0을 추가한다.
if len(n) == 2:
    n = "0" + n

while True:
    # 새로운 수를 리스트에 추가한다.
    res.append(n)

    # 두 정수를 더한다.
    temp = int(n[0]) + int(n[1])

    # 두 정수중 오른쪽 자리 수와 더한 수의 오른쪽 자리 수를 붙인다.
    n = n[1] + str(temp)[-1]

    # 리스트에 똑같은 수가 있으면 반복을 멈춘다.
    if n in res:
        break

    # 사이클 횟수 카운트
    cnt += 1

print(cnt)

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com