본문 바로가기

스터디 1일 1커밋

240206. [BOJ/백준] 1110. 더하기 사이클

 

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

 

1110번: 더하기 사이클

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

www.acmicpc.net


입력코드

data = int(input())
num = data
count = 0
new_num = 0
found = True

while found:
    sum = (num // 10) + (num % 10)
    new_num = (num % 10) * 10 + (sum % 10)
    count += 1
    if data == new_num:
        found = False
        print(count)
        break
    else:
        num = new_num

 


결과


문자열시도 - 출력안됨

data = list(input())
num = data
count = 0
while True:
    if len(num) == 1:
        num = '0'+num
    sum_num = str(int(num[0]) + int(num[1]))
    new_num = num[1] + sum_num[-1]
    count += 1
    if data != new_num:
        num = new_num
    else:
        break
print(count)

 

단위당 숫자 시도 - 출력안됨

N = int(input())

count = 0
while True:
    a = N // 10  #십의 자리수
    b = N % 10  #일의 자리수
    sum_num = a+b
    new_num = (b*10)+(sum_num%10)
    count += 1
    if N == new_num:
        break
print(count)

 

어렵지 않아 보이는 문제였는데 재귀함수로 하려다가 포기하고 함수짜는 것을 포기했다. 그 이후에 많은 시도를 해보았는데 계속 출력이 안되다가 마지막에 입력코드가 맞았다. 지금은 왜인지 알 수 없으니 다음에 보고 왜 출력이 안나왔는지 생각해봐야겠다.