백준 1697 문제 풀이
🐒 숨바꼭질
https://www.acmicpc.net/problem/1697
✍ 나의 풀이
from collections import deque
N, K = map(int, input().split())
def bfs():
q = deque()
q.append(N)
while q:
x = q.popleft()
if x == K:
print(time[x])
return
for nx in (x-1, x+1, x*2):
if 0 <= nx <= MAX and not time[nx]:
time[nx] = time[x] + 1
q.append(nx)
MAX = 10**5
time = [0] * (MAX +1)
bfs()
🧠 문제 이해
그리디로 푸는건가 싶었는데, 아니고
x-1, x+1, x*2 로 탐색을 뻗어나가면서 값을 찾으면 몇번째 탐색에 찾았는지 출력한다.
Author And Source
이 문제에 관하여(백준 1697 문제 풀이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mauserne/백준-1697-문제-풀이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)