728x90
반응형
https://www.acmicpc.net/problem/5014
최종 코드
import sys
from collections import deque
input = sys.stdin.readline
F, S, G, U, D = map(int, input().split())
q = deque([[S, 0]])
visit = [0]*(F+1)
visit[S] = 1
while q:
now, cnt = q.popleft()
if now == G:
print(cnt)
break
if now+U <= F and not visit[now+U]:
visit[now+U] = 1
q.append([now+U, cnt+1])
if now-D >= 1 and not visit[now-D]:
visit[now-D] = 1
q.append([now-D, cnt+1])
if now != G: print("use the stairs")
풀이 과정
풀이 시간 8분
import sys
from collections import deque
input = sys.stdin.readline
F, S, G, U, D = map(int, input().split())
#[현재 강호의 위치, 버튼을 누른 횟수]
q = deque([[S, 0]])
visit = [0]*(F+1)
visit[S] = 1
while q:
now, cnt = q.popleft()
#스타트링크 층에 도착한 경우, 탐색 종료
if now == G:
print(cnt)
break
#U 버튼 클릭
if now+U <= F and not visit[now+U]:
visit[now+U] = 1
q.append([now+U, cnt+1])
#D 버튼 클릭
if now-D >= 1 and not visit[now-D]:
visit[now-D] = 1
q.append([now-D, cnt+1])
#완전탐색 종료 후에도 스타트링크 층에 도착할 수 없는 경우
if now != G: print("use the stairs")
#시간복잡도 = O(V+E), 공간복잡도 = O(n)
728x90
반응형
'코테 노트 > 백준' 카테고리의 다른 글
백준 9019 DSLR Python 3 (0) | 2022.02.07 |
---|---|
백준 6593 상범 빌딩 Python 3 (0) | 2022.02.06 |
백준 7576 토마토 Python 3 (0) | 2022.02.04 |
백준 1697 숨바꼭질 Python 3 (0) | 2022.02.04 |
백준 2178 미로 탐색 Python 3 (0) | 2022.02.03 |