IT/ps
백준 16948번 데스 나이트
u149_cinderella
2025. 2. 18. 16:59
데스나이트면 듀라한 같은건가..
아무튼 풀이법은 나이트랑 거의 같다.
그냥 이동 가능한 모든 위치를 큐에 담으면 된다.
from collections import deque
import sys
n=int(sys.stdin.readline().rstrip())
r1,c1,r2,c2=map(int,sys.stdin.readline().rstrip().split())
q=deque()
v=[[-1]*n for _ in range(n)]
q.append([r1,c1])
v[r1][c1]=0
dr=[-2,-2,0,0,2,2]
dc=[-1,1,-2,2,-1,1]
while q:
cur_row,cur_col=q.popleft()
for i in range(6):
row=cur_row+dr[i]
col=cur_col+dc[i]
if row>=n or row<0 or col>=n or col<0:
continue
if v[row][col]!=-1:
continue
q.append([row,col])
v[row][col]=v[cur_row][cur_col]+1
print(v[r2][c2])