알고리즘/백준

백준 1110번

반딧불이 코딩 2022. 8. 16. 01:54

#오류 코드

num = int(input())

score = 0

while 1:
    num//10 == a
    num%10 == b
    a+b == hap
    hap%10 == c
    
    num = b*10 + c
    if num == num:
        break
    score +=1

print(score)

 

#정답 코드

n = int(input())
num = n
cnt = 0

while True:
    a = num//10
    b = num%10
    c = (a+b)%10
    num = (b*10)+c
    
    cnt = cnt+1
    if(num ==n):
        break
print(cnt)

이 문제는 거의 근접했다.

정답 코드와의 차이는 if문이 cnt +=1 기준으로 위인지 아래인지의 차이밖에 없다.

문제는 여기서 시작이다.

if문을 정답 코드와 같게 cnt문 아래로 두고 해봤더니 런타임 오류가 떴다.

그럼 그 다음의 코드 차이는 while문 안에서의 연산과정에서 a,b,c를 정의하는 곳에서

나는 연산과정을 먼저 적었고, 정답 코드는 a,b,c가 먼저 정의되어 있다.

연산에 앞서 정의를 먼저하는 것이 용량이 더 적은가보다.