[백준] 13913번 숨바꼭질4
728x90
반응형
계속 메모리 초과가 났는데, 이전에 지나온 위치를 계산할 때 무한 반복되는 구간이 있어
-1로 초기화해줄 필요가 있었다
path[N]=-1로 출발위치만 초기화해주면 된다
from collections import deque
from collections import defaultdict
N, K = map(int, input().split())
MAX_SIZE = 100001
q = deque()
q.append(N)
path=defaultdict(int)
check=[-1]* MAX_SIZE
check[N]=0
path[N]=-1
while q:
x = q.popleft()
if x==K:
break
for y in [x - 1, x + 1,2*x]:
if 0 <= y < MAX_SIZE:
if check[y]==-1:
check[y]=check[x]+1
path[y]=x
q.append(y)
print(check[K])
answer=deque()
answer.appendleft(K)
x=path[K]
while x!=-1:
answer.appendleft(x)
x=path[x]
print(' '.join(map(str,answer)))
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 17086번 아기 상어 2 (bfs, python) (0) | 2020.10.16 |
---|---|
[백준] 14226번 이모티콘 (bfs, 파이썬) (0) | 2020.10.16 |
[백준] 13549번 숨바꼭질 3 (python, bfs) (0) | 2020.10.16 |
[백준] 12851번 숨바꼭질 2 (bfs, 파이썬) (1) | 2020.10.16 |
[백준] 2178번 미로탐색 (bfs, python) (0) | 2020.10.14 |
TAGS.