728x90

 

모든 값을 리스트에 넣어주면서 값이 존재하는지를 체크해주려고 했는데 아마도 시간 초과가 나는 것 같다. in 이 아니라 for 문 내에서의 비교연산을 이용하는 것이 효율적이고, 최댓값의 범위를 지정해주어서 시간 초과를 방지하고 리스트를 미리 만들어 두었다면 풀 수 있던 문제이다.

import sys
 
k = list(map(int, sys.stdin.readline().split(" ")))
 
 
# 네가지 다 해보면서 리스트에 담기
 
a = k[0]
b = k[1]
 
check = []
answer = 0
check.append(a)
 
while True:
 
    temp = [ ]
    for i in range(0,len(check)):
        temp.append(check[i]-1)
        temp.append(check[i]+1)
 
        if check[i]<b:
            temp.append(check[i]*2)        
 
    answer+=1
 
    if b in temp:
        break
    else:
        check = temp
 
 
print(answer)        
 
728x90

+ Recent posts