๋ฌธ์
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 5014๋ฒ
ํ์ด ๊ณผ์
๊ฑด๋ฌผ์ ์์ ์ธต๊ณผ ๋ชฉํ ์ธต์ด ์ฃผ์ด์ก์ผ๋ฏ๋ก BFS
ํ์์ ํตํด ๋ชฉํ ์ง์ ์ ๋๋ฌํ๊ธฐ ์ํ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ผ๋ฉด ๋ฉ๋๋ค.
์ธต์ด ๊ฑด๋ฌผ์ ๋ฒ์ด๋๋ ๊ฒฝ์ฐ๋ง ์ฃผ์ํ๋ค๋ฉด ๋ฌด๋ํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์
๋๋ค.
์ฝ๋
import sys
from collections import deque
F, S, G, U, D = list(map(int, sys.stdin.readline().split()))
def bfs(start):
visit = [0 for _ in range(F+1)]
q = deque()
visit[start] = 1
q.append((start, 0))
while q:
here, cost = q.popleft()
if here == G:
return cost
for mv in [U, -D]:
next = here + mv
if 1 <= next <= F and not visit[next]:
visit[next] = 1
q.append((next, cost + 1))
return -1
def solution():
ans = bfs(S)
return ans if ans != -1 else 'use the stairs'
print(solution())
๋ฐ์ํ
'๐ algorithm > boj' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 5972 - ํ๋ฐฐ ๋ฐฐ์ก (0) | 2021.06.10 |
---|---|
BOJ 1613 - ์ญ์ฌ (0) | 2021.06.09 |
BOJ 1389 - ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น (0) | 2021.06.09 |
BOJ 2644 - ์ด์๊ณ์ฐ (0) | 2021.06.09 |
BOJ 10026 - ์ ๋ก์์ฝ (0) | 2021.06.09 |
๐ฌ ๋๊ธ