[백준] 1697번 숨바꼭질

거북이·2023년 1월 30일
0

백준[실버1]

목록 보기
4/67
post-thumbnail

💡문제접근

  • 가장 최선의 방법을 찾아가는 BFS 탐색 문제였다.
  • N = K인 경우가 반례였는데 이 부분은 0을 출력하도록 설정함으로써 해결할 수 있었다.

💡코드(메모리 : 35220KB, 시간 : 112ms)

from collections import deque

import sys
input = sys.stdin.readline

def BFS(N):
    queue = deque()
    queue.append(N)
    while queue:
        N = queue.popleft()
        for i in [N+1, N-1, 2*N]:
            if 0 <= i < MAX and not arr[i]:
                arr[i] = arr[N] + 1
                queue.append(i)

MAX = 100001
arr = [0] * MAX
N, K = map(int, input().strip().split())
if N == K:
    print(0)
else:
    BFS(N)
    print(arr[K])

💡소요시간 : 17m

0개의 댓글