문제링크 : https://www.acmicpc.net/problem/1697
- 갈 수 있는 위치를 모두 저장해서 가장 작은값을 구해보자
-> ! 그래프를 그려서 생각하니 모두 저장할 필요가 없었다.
- 위치가 바뀔 때마다 정답에 1씩 추가해주면 되겠다.
from collections import deque
import sys
input = sys.stdin.readline
subin, sister = map(int, input().split())
MAX = 100001
ans = [0] * MAX
def bfs():
q = deque([subin])
while q:
now_pos = q.popleft()
# print('now_pos: ', now_pos)
if now_pos == sister:
return ans[now_pos]
for next_pos in (now_pos-1, now_pos+1, now_pos*2):
# print('들어왔는지 확인')
if 0<=next_pos<MAX and not ans[next_pos]:
ans[next_pos] = ans[now_pos]+1
q.append(next_pos)
print(bfs())
for next_pos in (now_pos-1, now_pos+1, now_pos*2):
ans[next_pos] = ans[now_pos]+1
[ __ ] 이번주에 풀어본 BFS / DFS 문제들과 코드를 다 뽑아서 비교후 나만의 방식을 확정해야겠다.