반응형
풀이
일차원 BFS 문제입니다.
S,G 를 start, end값으로 선언했으며
U,D 을 dx 값에 +U 와 , -D 를 넣어줬습니다
check 값을 비교해서 queue에 삽입되면 +1씩 시켜줬으며 check[end]를 반환시켜줘서
출력시켰어용~~
# 스타트링크
# 일차원 BFS 문제이며, U,D 을 nx 값에 넣어줘서
# check 해당 값 출력
from collections import deque
import sys
input=sys.stdin.readline
F,S,G,U,D = map(int,input().split())
dx =[U,-D]
graph=[[] for _ in range(F)]
check=[-1 for _ in range(F)]
def bfs(start,end):
queue=deque()
queue.append(start)
check[start]=0
while queue:
x=queue.popleft()
for i in range(2):
nx= x +dx[i]
if 0<=nx<len(graph) and check[nx]==-1:
queue.append(nx)
check[nx]=check[x]+1
return check[end]
cnt=bfs(S-1,G-1)
if cnt==-1:
print("use the stairs")
else:
print(cnt)
반응형
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Python/파이썬 백준 13460] 구슬탈출2 (BFS) (0) | 2021.03.09 |
---|---|
[Python/파이썬 백준 2468] 안전 영역(BFS) (0) | 2021.03.04 |
[Python/파이썬 백준 2206] 벽 부수고 이동하기(BFS) (0) | 2021.03.02 |
[Python/파이썬 백준 1012] 유기농 배추(BFS) (0) | 2021.02.25 |
[Python/파이썬, Java/자바 백준 7576] 토마토(BFS) (0) | 2021.02.24 |