arr = []
while(True) :
a = input()
i1 , i2 = a.split(" ")
i1 = int(i1)
i2 = int(i2)
arr.append(i1+i2)
if (i1==0 and i2==0) :
break
for x in arr :
if x==0 : break
print(x)
처음에 이 문제가 왜 맞힌 비율이 낮은가 했었는데,,, 문제 자체가 어렵다기 보다 문제를 이해하고 원하는 출력값을 내는게 좀 헷갈린..? 그런 문제 같다..
나 같은 경우에는 일단 입력값을 받고 그 둘을 더한 다음 그 값을 배열에 저장하기 까지의 과정을 while 문에 넣은 후 만약 입력값을 '0 0' 를 받으면 while 문이 끝나도록 했다. 그리고 마지막엔 for 문을 이용하여 배열에 있는 값들을 print 하고 마지막 0이 나오면 종료하는 식으로 작성해보았다.
인터넷 찾아보면서 다른 풀이도 살펴보는데,,, 천재같은 코드 발견..
a,b = mpa(int , input().split())
if (a==0 and b==0) :
break
else :
print a+b
cnt = 0
start = input()
start = '0'+start if int(start)<10 else start
i = start
while(True) :
a,b = int(i[0]) , int(i[1]) # int
new = str(a+b) # string
new = str(b) + new[-1]
cnt += 1
if new == start :
print(cnt)
break
i = new
나 같은 경우에는 숫자를 문자로 변환해서 풀었는데 인터넷에 찾아보니까 더 효율적인 방법이 있었다
n = int(input() )
num = n
cnt = 0
while True :
a = num // 10
b = num % 10
c = (a+b) % 10
num = (b*10) + c
cnt += 1
if (num == n) : break
print(cnt)
숫자의 자리수를 표현할때는 문자열로 바꿔야만 표현할 수 있다고 생각했는데 10을 나누는 방법이 훨씬 더 좋은 것 같다.