728x90
https://www.acmicpc.net/problem/5014
5014๋ฒ: ์คํํธ๋งํฌ
์ฒซ์งธ ์ค์ F, S, G, U, D๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) ๊ฑด๋ฌผ์ 1์ธต๋ถํฐ ์์ํ๊ณ , ๊ฐ์ฅ ๋์ ์ธต์ F์ธต์ด๋ค.
www.acmicpc.net
bfs๋ก ํ์๋ค.
์ต์ด ์ขํ๋ฅผ ํ์ ๋ฃ๊ณ , ํ์์ ํ๋์ฉ ๊บผ๋ด์ ์ ๋๋ ์๋ ์ธต์ ๋ฒ์์ ๋ฐฉ๋ฌธ์ฌ๋ถ๋ฅผ ์ฒดํฌํ์๋ค.
์ต์ด์ ์ขํ s์ ๋ฐฉ๋ฌธ ์ฌ๋ถ ์ฒดํฌ๋ฅผ ํ์ง ์์์ ์๊พธ ์ค๋ต์ด ๋์์๋ค.
python
from collections import deque
f, s, g, u, d = map(int, input().split())
elevator = [0 for _ in range(f+1)]
q = deque()
q.append(s)
elevator[s] = 1 # ์ต์ด์ ์ขํ ๋ฐฉ๋ฌธ์ฒดํฌ
if s == g:
print(0)
exit(0)
while q:
cur = q.popleft()
if cur == g:
break
for i in (u, -d):
next = cur + i
if 0 < next <= f and elevator[next] == 0:
elevator[next] = elevator[cur] + 1
q.append(next)
if elevator[g] == 0:
print("use the stairs")
else:
print(elevator[g]-1)
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > DFS,BFS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ํฌ๋์ฃผ ์์ (1) | 2024.11.25 |
---|---|
[๋ฐฑ์ค]2573๋ฒ: ๋น์ฐ (0) | 2023.07.28 |
[๋ฐฑ์ค]11725๋ฒ: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ (0) | 2023.07.18 |
[๋ฐฑ์ค]1926๋ฒ: ๊ทธ๋ฆผ (0) | 2023.07.16 |
[๋ฐฑ์ค]14940๋ฒ: ์ฌ์ด ์ต๋จ๊ฑฐ๋ฆฌ (0) | 2023.07.03 |