본문 바로가기

코딩 이야기/백준 풀이

백준 1697번: 숨바꼭질 파이썬 코드(bfs)

반응형

 

https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/600px-Python-logo-notext.svg.png

import sys
from collections import deque

n,k = map(int,sys.stdin.readline().split())

x = [-1, 1, 2]

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
            return count
        for i in range(3):
            if i == 2:
                a = q * 2
            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:
    print(bfs(n,k))

 

 

visited 범위를 잘못 설정해서 엄청해메다가 높게 설정후 통과했다.

반응형