BOJ 1697鬼ごっこ
質問する
BOJ 1697鬼ごっこ
シルバーI|白駿1697|Python 3 Python池
アルゴリズム#アルゴリズム#
基本的なBFSナビゲーションアルゴリズム
コード#コード#
import sys
from collections import deque
def BFS():
# 방문 여부 체크
visited = [False for i in range(100002)]
curr = N
queue = deque()
queue.append([curr, 0])
# BFS
while queue:
# curr : 지금 위치, sec : 소요 시간
curr, sec = queue.popleft()
# print(curr, sec)
# 도착했다면 소요 시간을 출력하고 종료
if curr == K:
print(sec)
return
# 방문 체크
if visited[curr] == 0:
visited[curr] = True
# -1
m1 = curr - 1
if 0 <= m1 < 100001:
if not visited[m1]:
queue.append([m1, sec + 1])
# +1
m2 = curr + 1
if 0 <= m2 < 100001:
if not visited[m2]:
queue.append([m2, sec + 1])
# x2
m3 = curr * 2
if 0 <= m3 < 100001:
if not visited[m3]:
queue.append([m3, sec + 1])
N, K = map(int, sys.stdin.readline().split())
BFS()
結果
Reference
この問題について(BOJ 1697鬼ごっこ), 我々は、より多くの情報をここで見つけました https://velog.io/@leehe228/boj1697テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol