[파이썬] 백준 1697 숨바꼭질

리스트에 모든 값을 추가하면서 해당 값이 존재하는지 확인을 해보았으나 시간이 초과된 것 같습니다.

비교연산은 내부가 아닌 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)