728x90
https://www.acmicpc.net/problem/5014
import sys
from collections import deque
f, s, g, u, d = map(int, sys.stdin.readline().split()) #1
visit = [-1]*(f+1) #2
def bfs(s):
q = deque()
q.append(s)
visit[s] = 0 #3
while q:
x = q.popleft()
if x == g: #4
return visit[g] #5
for nx in (x+u, x-d): #6
if 0 < nx <= f: #7
if visit[nx] == -1: #8
visit[nx] = visit[x] + 1
q.append(nx)
if visit[g] == -1: #9
return 'use the stairs'
print(bfs(s))
#1 : 각 변수 입력
#2 : 방문처리를 위한 리스트 생성
#3 : 첫번째 시작위치 방문처리 거리는 0으로 초기화
#4 : 만일 x가 도착층수인 g와 같다면
#5 : visit[g]를 반환
#6 : 아니라면 위층과 아래층으로 층을 변환한뒤
#7 : 범위안에 들어오고
#8 : 처음 방문하는 층수라면 이전 층수의 방문 횟수에 +1을 더해주고 q에 새로운 층수를 저장
#9 : while문이 끝났는데 아직 visit[g]가 -1로 남아있다면 'use the stairs'를 반환
비슷한 문제 숨바꼭질 2 12851번(https://hgk5722.tistory.com/166)
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 5585 파이썬(python) : 거스름돈 (0) | 2022.08.16 |
---|---|
[백준] 1068 파이썬(python) : 트리 (0) | 2022.08.15 |
[백준] 9205 파이썬(python) : 맥주 마시면서 걸어가기 - (★) (0) | 2022.08.13 |
[백준] 2583 파이썬(python) : 영역 구하기 - (범위색칠) (0) | 2022.08.12 |
[백준] 9372 파이썬(python) : 상근이의 여행 (0) | 2022.08.11 |