728x90
- 문제
- 해설
-
import sys from collections import deque sys.setrecursionlimit(1000000) subin, sister = [*map(int, sys.stdin.readline().strip().split())] # 시작부터 수빈이가 선두인 경우는 수빈이가 뒷걸음치는 것만 가능 if subin >= sister: print(subin - sister) sys.exit() q = deque() map_ = [0] * 200000 def bfs(subin_position, current_seconds): candidates = [subin_position - 1, subin_position + 1, 2 * subin_position] candidates = [candidate for candidate in candidates if 0 <= candidate <= 100000 and map_[candidate] == 0] next_seconds = current_seconds + 1 for candidate in candidates: # 수빈이가 동생 찾았을 때 if candidate == sister: print(next_seconds) sys.exit() map_[candidate] = next_seconds q.appendleft((candidate, next_seconds)) if len(q): bfs(*q.pop()) bfs(subin, 0)
-
- 포인트
- BFS 문제인 걸 알기
728x90
'Algorithm-Problems > 백준' 카테고리의 다른 글
[백준][1759] 암호 만들기 (0) | 2022.02.09 |
---|---|
[백준][1707] 이분 그래프 (0) | 2022.02.09 |
[백준][1476] 날짜 계산 (0) | 2022.02.06 |
[백준][1260] DFS와 BFS (0) | 2022.02.06 |
[백준][1182] 부분수열의 합 (0) | 2022.02.06 |