공부, 기록

백준 1697. 숨바꼭질 파이썬(PYTHON) 본문

코딩

백준 1697. 숨바꼭질 파이썬(PYTHON)

무는빼주세요 2020. 11. 14. 14:57

문제링크 : www.acmicpc.net/problem/1697

 

1697번: 숨바꼭질

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

www.acmicpc.net

 

from collections import deque
def solution(N,M):
    queue=deque()
    queue.append((N,0))
    visitied=set()
    visitied.add(N)
    while queue:
        x, time = queue.popleft()
        if x == M:
            return time
        for i in range(3):
            if i ==0:
                mx = x*2
                if 0<= mx <=100000:
                    if mx not in visitied:
                        queue.append((mx,time+1))
                        visitied.add(mx)
            elif i == 1:
                mx = x-1
                if 0<= mx <=100000:
                    if mx not in visitied:
                        queue.append((mx,time+1))
                        visitied.add(mx)
            elif i == 2:
                mx = x+1
                if 0<= mx <=100000:
                    if mx not in visitied:
                        queue.append((mx,time+1))
                        visitied.add(mx)


def main():
    N, M = map(int,input().split())

    print(solution(N,M))
main()