Skip to content

Latest commit

 

History

History
53 lines (44 loc) · 1.36 KB

18232.md

File metadata and controls

53 lines (44 loc) · 1.36 KB

백준 18232번 텔레포트 정거장

image


코드 설명

  • 현재있는 위치에서 +1, -1 이동가능하기 때문에 리스트 안에 넣어줘야 한다.
  • visited 리스트를 만들어 방문을 했는지 안했는지를 검사하는 것과 동시에 그곳까지 가기 위해서는 몇초가 걸리는지 시간을 값으로 넣어준다.

소스코드

  • 메모리 : 131508 KB
  • 시간 : 1412 ms
from collections import deque
import sys

def in_range(x):
    return 1 <= x < n+1

def bfs(s):
    q = deque()
    q.append(s)
    visited[s] = 0
    curr = s
    cnt = 0
    while q:
        x = q.popleft()
        grid[x].sort()
        for g in grid[x]:
            if in_range(g) and visited[g] == -1:
                visited[g] = visited[x]+1
                q.append(g)
                if g == e:
                    return visited[g]


n, m = tuple(map(int, sys.stdin.readline().split()))
s, e = tuple(map(int, sys.stdin.readline().split()))
visited = [-1]*(n+1)
grid = {}
for i in range(1,n+1):
    grid[i] = [i-1,i+1]
for _ in range(m):
    k,v = tuple(map(int, sys.stdin.readline().split()))
    grid[k].append(v)
    grid[v].append(k)

t = bfs(s)
print(t)