본문 바로가기

알고리즘

백준 ) 1110 - 더하기 사이클 Python

문제 링크 :  https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

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

www.acmicpc.net

solution : 

n = int(input())

count = 0
val = n

while True:

    x = val // 10
    y = val % 10

    sum = x + y
    val = y * 10 + (sum % 10)
    count +=1

    if val == n:
        break

print(count)

 

while True문을 사용해 특정 조건을 만족시키면 빠져나오는 코드를 작성했다. 알고리즘 문제를 풀어보면서 처음 사용해 보았다. 

 

처음 작성했던 코드는 val과 n을 따로 초기화해주었는데, 결국 while 문 안의 연산이 한 바퀴 끝나면 val이 x, y 로 나눠지는 부분이 동일하기 때문에 코드를 합칠 수 있었다. 스터디원들과 함께 고민해보고 코드를 공유함으로써 더욱 효율적인 코드를 만들어내는것이 중요하다는 것을 알게 되었다.