백준 7562번
최종 제출 코드
import sys
from collections import deque
input = sys.stdin.readline
dx = [-2,-2,-1,-1,1,1,2,2]
dy = [-1,1,-2,2,-2,2,-1,1]
repeat = int(input().rstrip())
for k in range(repeat):
n = int(input().rstrip())
x1, y1 = map(int, input().split())
x2, y2 = map(int, input().split())
queue = deque()
queue.append([x1, y1])
visited = [[0 for _ in range(n)] for _ in range(n)]
while queue:
x, y = queue.popleft()
if x==x2 and y==y2:
break
for i in range(8):
if x+dx[i] < 0 or x+dx[i] >= n or y+dy[i] < 0 or y+dy[i] >= n:
continue
if visited[y+dy[i]][x+dx[i]] == 0:
visited[y+dy[i]][x+dx[i]] = visited[y][x] + 1
queue.append([x+dx[i], y+dy[i]])
print(visited[y2][x2])