본문 바로가기
Algorithm/DFS&BFS&백트래킹&재귀

[Python3] 백준 1697번 숨바꼭질

by HANNI하니 2023. 4. 19.

사용 언어 - Python3

문제 - 숨바꼭질

 

1697번: 숨바꼭질

수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일

www.acmicpc.net

 

정답

BFS 재귀함수 (정답 맞춘 여부 X)

 

from collections import deque

def bfs():
    q = deque()
    q.append(n)
    while q:
        x = q.popleft()
        if x == k:
            print(dist[x])
            break
        for nx in (x-1,x+1,x*2):
            if 0<= nx <= MAX and not dist[nx]:
                dist[nx] = dist[x]+1
                q.append(nx)

MAX = 10**5
dist = [0]*(MAX+1)
n, k = map(int,input().split())
bfs()

 

 

 

 


레퍼런스

  • 정답 참고

 

댓글