반응형
https://www.acmicpc.net/problem/1697
1697번: 숨바꼭질
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일
www.acmicpc.net
Hint
x
Solution
from collections import deque
n,k = map(int,input().split())
visit_list=[0]*100001 # 중복 제외
count_list=[1]*100001 # 거리
def bfs(v, end):
q=deque()
q.append(v)
while q:
v=q.popleft()
if v==end:
return True
if 0<= v-1 <= 100000 and visit_list[v-1]==0:
q.append(v-1)
visit_list[v-1]=1
count_list[v-1]+=count_list[v]
if 0<= v+1 <= 100000 and visit_list[v+1]==0:
q.append(v+1)
visit_list[v+1]=1
count_list[v+1]+=count_list[v]
if 0<= v*2 <= 100000 and visit_list[v*2]==0:
q.append(v*2)
visit_list[v*2]=1
count_list[v*2]+=count_list[v]
bfs(n,k)
print(count_list[k]-1) # 목적지까지 몇 초 걸렸는지
기본적인 너비 우선 탐색 알고리즘
유사 문제 : 2644번 촌수 계산
해당 문제와 문제 해결 방식이 비슷
노드 이동 횟수를 파악하는 사고 방식
visit_list: 이미 방문한 좌표를
다시 방문하지 않기 위한 함수
count_list: 해당 좌표에 도달하기 전까지
몇 번의 좌표를 이동했는지 계산하기 위한 함수
반응형
'백준(BOJ)' 카테고리의 다른 글
[백준]1541번 잃어버린 괄호 : 파이썬(python) 설명 (0) | 2022.08.09 |
---|---|
[백준] 11724번 연결 요소의 개수 : 파이썬(python) 설명 (0) | 2022.06.23 |
[백준] 10872번 팩토리얼 : 파이썬(python) 설명 (0) | 2021.10.26 |
백준 알고리즘을 시작하기 전 알면 좋은 코드 모음 #1 (0) | 2021.10.24 |
[백준] 2579번 계단 오르기 : 파이썬(python) 설명 (0) | 2021.10.23 |