728x90
from collections import deque
import sys
dx = [ -2, -1, 1, 2, 2, 1, -1, -2 ] #1
dy = [ -1, -2, -2, -1, 1, 2, 2, 1 ]
t = int(input())
for _ in range(t): #2
i = int(sys.stdin.readline()) #3
graph = [ [0] * i for _ in range(i) ]
x, y = map(int, sys.stdin.readline().split()) #4
w, z = map(int, sys.stdin.readline().split())
q = deque()
q.append((x, y))
while q:
x, y = q.popleft()
if x == w and y == z: #5
print(graph[w][z])
break
for j in range(8):
nx = x + dx[j]
ny = y + dy[j]
if 0 <= nx < i and 0 <= ny < i:
if graph[nx][ny] == 0: #6
graph[nx][ny] = graph[x][y] + 1
q.append((nx, ny))
#1 : 나이트의 이동방향을 표현
(-2, -1)을 시작으로 반시계 방향으로 dx, dy채워줌
#2 : 단순 반복이므로 반복변수 필요없음
#3 : 체스판의 크기 입력
#4 : 출발점 x, y와 도착점 w, z입력
#5 : 반복문의 탈출조건
#6 : 그래프의 각 위치에 이동횟수 입력
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 1707 파이썬(python) : 이분 그래프 (0) | 2022.07.01 |
---|---|
[백준] 16928 파이썬(python) : 뱀과 사다리 게임 - (★) (0) | 2022.07.01 |
[백준] 1697 파이썬(python) : 숨바꼭질 - (★) (0) | 2022.06.30 |
[백준] 7569 파이썬(python) : 토마토 - 3차원배열 (0) | 2022.06.30 |
[백준] 7576 파이썬(python) : 토마토 - (★) (0) | 2022.06.30 |