반응형
import sys
from collections import deque
n,k = map(int,sys.stdin.readline().split())
x = [-1, 1, 2]
ll = []
def bfs(now,target):
queue = deque([])
visited = [0 for _ in range(300009)]
queue.append([now,0])
while queue:
q,c = queue.popleft()
visited[q] = 1
if q == target:
count = c
ll.append(count)
for i in range(3):
if i == 2:
a = q * 2
if visited[a] == 0 and 0<=a<=100000:
queue.append([a,c])
else:
a = q + x[i]
if visited[a] == 0 and 0<=a<=100000:
queue.append([a,c+1])
if n>k:
print(n-k)
else:
bfs(n,k)
print(min(ll))
다익스트라 문제인데, bfs로도 풀렸다.
반응형
'코딩 이야기 > 백준 풀이' 카테고리의 다른 글
백준 1931번: 회의실 배정 파이썬 코드(그리디 알고리즘) (0) | 2021.05.13 |
---|---|
백준 15686번: 치킨 배달 파이썬 코드(백트래킹) (0) | 2021.05.09 |
백준 1912번: 최소비용 구하기 파이썬 코드(다익스트라) (0) | 2021.05.08 |
백준 1697번: 숨바꼭질 파이썬 코드(bfs) (0) | 2021.03.17 |
백준 7576번: 토마토 파이썬 코드(bfs) (0) | 2021.03.17 |