https://www.acmicpc.net/problem/5014
1. 내가 작성한 코드
from collections import deque
f, s, g, u, d = map(int,input().split())
visit = [0] * (f+1)
def bfs():
queue = deque()
queue.append(s)
visit[0] = 1
visit[s] = 1
while queue:
x = queue.popleft()
dx = [u,-d]
for i in range(2):
nx = x + dx[i]
if nx < 0 or nx> f:
continue
if visit[nx] == 0:
visit[nx] = visit[x] + 1
queue.append(nx)
bfs()
if s == g:
print(0)
elif visit[g] == 0:
print("use the stairs")
else:
print(visit[g]-1)
이 문제에서 놓칠 수 있는 점
1) list를 f + 1층으로 만들었을 경우, 0층에 방문했다는 체크 해주기
2) s == g가 같을 경우 예외처리 해주기
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 11725번 트리의 부모 찾기(python) (0) | 2023.02.18 |
---|---|
[백준] 카드 정렬하기 (python) (0) | 2023.02.18 |
[백준] 10026번 적록색약(python) (0) | 2023.02.16 |
[백준] 1463번 1로 만들기(python) (0) | 2023.02.16 |
[백준] 9095번 1,2,3 더하기(python) (0) | 2023.02.16 |
댓글