[1. 문제 설명]
https://www.acmicpc.net/problem/16953
[2. 풀이 접근]
bfs 를 이용해서 A -> B 까지 이동하는 최단 길이를 찾는다.
- B 는 최대 10억 까지 주어지므로, 배열로 visit table 을 잡을 수 없다. => 메모리 제한
- map 을 이용해서 visit table 로 사용한다.
A -> B 로 가는 단방향 탐색으로도 시간 내에 해결 할 수 있어보이지만,
A->B 와 B->A 로 이동하는 양방향 탐색으로 해결해 보도록 한다.
- 단방향 탐색으로 시간 내 해결 가능해 보이는 이유는
- 1.) 현재 값에서 2배씩 늘어남.
- 2.) 현재 값에서 10배 한 다음 +1 한 값으로 늘어 남.
- 값이 크게 크게 점프하므로,
int 를 사용하면 오버플로우 때문에 오답이 발생 할 수 있다.
- long long 을 사용해서 오버플로우를 피하도록 한다.
[3. 코드]
'알고리즘 > Baekjoon' 카테고리의 다른 글
kmp. [1701] (0) | 2023.04.21 |
---|---|
위상정렬. [2056] (0) | 2023.04.13 |
최소신장트리. [14621] (0) | 2023.04.11 |
최소 신장 트리. [6497] (0) | 2023.04.03 |
bfs. [13460] (0) | 2023.04.02 |