[Algorithm][Python] 백준(BOJ) 5014 스타트링크

최대 1 분 소요

[문제]

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

image image


풀이

[내 코드]

import sys
from collections import deque

def bfs(v):
    dx = [u, -d]

    queue = deque()
    queue.append((v, 0))
    visited[v] = 1

    while queue:
        v = queue.popleft()

        if v[0] == g:
            print(v[1])
            return

        for i in range(2):
            nx = v[0] + dx[i]

            if 0 < nx <= f and visited[nx] == 0:
                visited[nx] = 1
                queue.append((nx, v[1]+1))

    print("use the stairs")           

f, s, g, u, d = map(int, sys.stdin.readline().split())
visited = [0] * (f+1)
bfs(s)

💡 풀이

처음 시간초과가 났다.

  1. sys.stdin.readline()로 바꿈 (해결X)
  2. visited 조건문 위로 합치기 (해결X)
  3. visited.append() 하지말고 visited[] 로 인덱스 접근하기 (해결)
    visited.append()하면 탐색하는데 시간이 오래 걸림!!

image

댓글남기기