[백준] 13549번 숨바꼭질 3 (파이썬)

전민기·2023년 5월 12일
0

https://www.acmicpc.net/problem/13549

BFS

visited = [False]*100001
result = [0]*100001

def bfs(v):
    visited[v] = True
    q = deque()
    q.append(v)
    
    while q:
        v = q.popleft()
        if v == k:
            return result[v]
        for i in (v-1, v+1, v*2):
            if 0 <= i <= 100000 and not visited[i]:
                visited[i] = True
                if i == v*2:
                    q.appendleft(i)
                    result[i] = result[v]
                else:
                    q.append(i)
                    result[i] = result[v] + 1
                
print(bfs(n))

0개의 댓글