본문 바로가기

BAEKJOON/Python3

백준 #1110: 더하기 사이클

while문 - #1110: 더하기 사이클  python3

 

#1110 link

 

1110번: 더하기 사이클

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

www.acmicpc.net

문제


N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오.

 

풀이


a = int(input())
origin = a
attempt = 0
while 1 :
    attempt += 1
    x = a//10
    y = a%10
    z = x+y
    new_a = 10*y + z%10
    if origin != new_a :
        a = new_a
    else :
        break
print(attempt)

a = x * 10 + y 입니다.

x + y = z가 사이클이 됩니다.

새로운 new_a를 만들어서 orginal(첫 a)와 대조해 맞으면 while문을 종료하고, 틀리면 a를 갱신해줍니다.

횟수는 attempt로 반복문이 진행될 때마다 1씩 증가합니다.

'BAEKJOON > Python3' 카테고리의 다른 글

백준 #5543: 상근날드  (0) 2020.07.31
백준 #10039: 평균 점수  (0) 2020.07.31
백준 #10951: A+B -4  (0) 2020.07.30
백준 #10952: A+B -5  (0) 2020.07.30
백준 #10871: X보다 작은 수  (0) 2020.07.29