https://www.acmicpc.net/submit/7562/58393966
from collections import deque
import sys
dx = [-1, 1, -1, 1, 2, -2, 2, -2, 2]
dy = [2, 2, -2, -2, 1, 1, -1, -1]
def bfs(x, y):
q = deque()
q.append((x, y))
if x == goalx and y == goaly:
print(0) # 이거 처음에 1로 뒀다가 디버깅하는데 한참 시간쏟음
return 0
while q:
cx, cy = q.popleft()
if not visited[cx][cy]:
visited[cx][cy] = True
for i in range(8):
nx = cx+dx[i]
ny = cy+dy[i]
if 0 <= nx < n and 0 <= ny < n and not visited[nx][ny]:
graph[nx][ny] = graph[cx][cy] + 1
q.append((nx, ny))
if nx == goalx and ny == goaly:
print(graph[nx][ny])
return graph[nx][ny]
return "impossible"
if __name__ == "__main__":
t = int(input())
for _ in range(t):
n = int(input())
visited = [[False for _ in range(n)] for _ in range(n)]
graph = [[-1 for _ in range(n)] for _ in range(n)]
if _ in range(t):
# 테스트 케이스
x, y = map(int, input().split())
goalx, goaly = map(int, input().split())
graph[x][y] = 0
bfs(x, y)
내 힘으로 다풀었다!
그것도 30분만에
그런데 아무 생각없이 넣은 코드 하나에서 디버깅하는데 오래걸렸다.
덜렁거리는 습관 좀 고쳐야할듯.