반응형
문제 설명
풀이 코드
각 층마다 버튼을 몇번씩 눌려 도달했는지 저장하기 위해 visited[] 배열을 선언하였다.
강호의 위치(S)부터 bfs로 탐색을 시작한다.
강호의 위치(S)가 스타트링크(G)에 도착하면 스타트링크까지 도착하는데 눌린 버튼횟수를 반환한다. visited[cur]
정답 코드
from collections import deque
import sys
input = sys.stdin.readline
f, s, g, u, d = map(int, input().split()) # 층수, 강호, 스타트링크, 위, 아래
visited = [-1] * (f + 1)
def bfs(start):
q = deque()
q.append(start)
visited[start] = 0
while q:
cur = q.popleft()
if cur == g:
return visited[cur]
for next in (cur + u, cur - d):
if 0 < next <= f and visited[next] == -1: # 건물은 1층 부터 시작
visited[next] = visited[cur] + 1
q.append(next)
# G까지 도달하지 못할 경우
if visited[g] == -1:
return "use the stairs"
print(bfs(s))
'◼ 코딩테스트 > DFS,BFS' 카테고리의 다른 글
[Python/파이썬] 백준 2636 - 치즈 (0) | 2023.06.08 |
---|---|
[Python/파이썬] 백준 9019 - DSLR (0) | 2023.06.07 |
[Python/파이썬] 백준 1697번 - 숨바꼭질 (0) | 2023.06.04 |
[Python/파이썬] 백준 16953 - A -> B (0) | 2023.06.03 |
[Python/파이썬] 백준 13460 - 구슬 탈출2 (0) | 2023.06.02 |