Notice
Recent Posts
Recent Comments
Link
꾸준하게 거북이처럼
BFS - 가중치와 최단거리 본문
13549번: 숨바꼭질 3
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일
www.acmicpc.net
백준 숨바꼭질3 문제를 풀다, BFS로 풀었더니 채점에서 11%까지 가고 틀렸습니다 떴다.
왜 그런 것인가 에 대해서 알아보니,
최단 경로를 구할 때(여기서는 걸리는 시간) BFS는 가중치가 없는 경우에 사용한다. 가중치가 없기 때문에 선입선출 FIFO가 적용되어도 되기 때문에 이전 숨바꼭질 문제에서는 사용해도 괜찮은 것이었다.
하지만! 이 문제는 가중치가 0 (순간이동) 또는 1이기 때문에, 일반적인 BFS로 문제를 풀면 틀린답이 나온다.
따라서 가중치(여기서는 걸린시간이 낮은것) 가 높은 순간이동 연산을 먼저 큐에 삽입하면 정답이 나오는 것이다.
bfs를 처음 배울때, 같은 깊이인 노드들을 FIFO로 방문하는 것을 떠올릴 수 있다.
여기서 같은 깊이라는 말이 이 문제에서는 그 깊이가 걸린 시간이고 걸린시간은 가중치라고 볼 수 있다.!
'Algorithm 문제 & 공부 > BFS' 카테고리의 다른 글
이코테 미로탈출 (0) | 2022.12.07 |
---|---|
백준 14266 파이썬 (0) | 2022.11.12 |
백준 1261번: 알고스팟 파이썬 (0) | 2022.11.08 |
백준 13913번 파이썬 - 숨바꼭질4 (0) | 2022.10.29 |
백준 7576번 토마토 (0) | 2022.10.23 |
Comments