poow810
article thumbnail

Approach

  • 최단 경로를 찾는 문제이면서, 간선들의 가중치가 모두 같기 때문에 BFS 탐색이 적합하다고 생각했다.
  • 미리 visited 배열을 만들어두고, count를 세가면서 배열을 완성해주었다.

Solution 💡

import sys
from collections import deque

def bfs(start, end):

    queue = deque()
    queue.append(start)
    visited[start] = 1
    
    while queue:
        current= queue.popleft()
        
        if current == end:
            return
        
        for i in (current-1, current+1, current*2):
            if 0 <= i <= 100000 and not visited[i]:
                visited[i] = visited[current] + 1
                queue.append(i)
        

N, M = map(int, sys.stdin.readline().split())

visited = [0] * (100001)
bfs(N, M)
print(visited[M] - 1)
profile

poow810

@woonii_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!