코테 백준 1697 실버1

김동윤·2023년 8월 8일
0
post-thumbnail

백준 1697

문제 조건의 최댓값을 이용하는게 가장 큰것같았다. 처음에는 도착지+1 정도의 배열크기로 설정하면되지 않을까했는데 런타임에러(인덱스 범위 벗어남)으로 인해서 예외 발생이였다. 2배 곱하는것때문이다. 그래서 문제 조건을 활용해서 풀었더니 쉽게 풀린다.

문제 풀이는 기존의 bfs를 이용해서 간단하게 푸는거다.

import sys
from collections import deque
input=sys.stdin.readline

n,k=map(int,input().split())
graph=[0]*(100001)
mov=[-1,1,2]
def bfs(n):
    graph[n]=0
    que=deque()
    que.append(n)
    while que:
        move=que.popleft()
        if move==k:
            return graph[k]
        for i in range(3):
            if i==2:
                next_move=move*mov[i]
            else:
                next_move=move+mov[i]
            if 0<=next_move<100001 and graph[next_move]==0:
                graph[next_move]=graph[move]+1
                que.append(next_move)

print(bfs(n))
profile
Back-End

0개의 댓글