-
[백준] 1697번 문제 (숨바꼭질) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 7. 09:11
https://www.acmicpc.net/problem/1697
from collections import deque n, k = map(int, input().split()) visited = [False] * 100001 q = deque() q.append([n, 0]) while q: pivot, d = q[0][0], q[0][1] if pivot == k: break q.popleft() visited[pivot] = True if pivot - 1 >= 0 and not visited[pivot - 1]: q.append([pivot - 1, d + 1]) if pivot + 1 <= 100000 and not visited[pivot + 1]: q.append([pivot + 1, d + 1]) if pivot * 2 <= 100000 and not visited[pivot * 2]: q.append([pivot * 2, d + 1]) print(q[0][1])
bfs문제이다.
큐에 시작점인 n과 카운트인 0을 리스트에([n, 0]) append 해준다.
그 후 bfs가 끝날때까지
경우의 수 3가지의 방법으로 탐색을 진행한다.
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 5567번 문제 (결혼식) 파이썬(Python) 풀이 (0) 2021.09.07 [백준] 11866번 문제 (요세푸스 문제 0) 파이썬(Python) 풀이 (0) 2021.09.07 [백준] 11399번 문제 (ATM) 파이썬(Python) 풀이 (0) 2021.09.06 [백준] 1931번 문제 (회의실 배정) 파이썬(Python) 풀이 (0) 2021.09.06 [백준] 10610번 문제 (30) 파이썬(Python) 풀이 (0) 2021.09.06