728x90
반응형
https://www.acmicpc.net/problem/13913
13913번: 숨바꼭질 4
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일
www.acmicpc.net
<풀이>
기존 숨바꼭질 문제에서 변형해왔다.
모든 경로를 list에 담아서 전달해줬더니 메모리 초과가 나온다.
따라서 해당 경로의 이전 값을 저장하는 리스트를 만들어줘서 역추적 했다.
2022.04.06 - [# Coding/# 백준] - [백준 / 1697] 숨바꼭질 - Python
[백준 / 1697] 숨바꼭질 - Python
https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순..
joinmycode.tistory.com
<전체 코드>
from collections import deque
n, k = map(int, input().split())
graph = [float('inf')] * 200000
way = [-1] * 200000
queue = deque([[n, 0]])
graph[n] = 0
while queue:
now, time = queue.popleft()
if graph[now] < time:
continue
if now < k:
nexts = [now-1, now+1, now*2]
else:
nexts = [now-1]
for next in nexts:
if next == -1:
continue
if graph[next] > time+1:
graph[next] = time+1
way[next] = now
queue.append([next, time+1])
print(graph[k])
answer = str(k)
now = k
while now != n:
answer = str(way[now]) + ' ' + answer
now = way[now]
print(answer)
728x90
반응형
'# Coding > # 백준' 카테고리의 다른 글
[백준 / 1167] 트리의 지름 - Python (0) | 2022.04.21 |
---|---|
[백준 / 1967] 트리의 지름 - Python (0) | 2022.04.12 |
[백준 / 13549] 숨바꼭질 3 - Python (0) | 2022.04.07 |
[백준 / 12851] 숨바꼭질 2 - Python (0) | 2022.04.07 |
[백준 / 1697] 숨바꼭질 - Python (0) | 2022.04.06 |