[ 2023-07-26 ๐Ÿ TIL ]

Burkeyยท2023๋…„ 7์›” 26์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
130/157

๋ฐฑ์ค€ 7562๋ฒˆ ํŒŒ์ด์ฌ


๋ฌธ์ œ


์ฝ”๋“œ

import sys
from collections import deque

input = sys.stdin.readline

n = int(input())
move = ((-2,-1),(-1,-2),(-2,1),(-1,2),(2,-1),(1,-2),(1,2),(2,1)) 
# ๋‚˜์ดํŠธ์˜ ์ด๋™ ๊ทœ์น™ 

for _ in range(n):
  l = int(input())
  s = tuple(map(int, input().split()))
  e = tuple(map(int, input().split()))
  visited = [[0] * l for _ in range(l)]
  
  q = deque([s]) # bfs
  
  while q: 
    xi, xj = q.popleft()
    
    for mi, mj in move:
      ci, cj = (mi + xi), (mj + xj)
      if 0<=ci<l and 0<=cj<l: 
      # ์ฒด์Šค๋ณด๋“œ ๋ฒ”์œ„ ์•ˆ์— ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ์ขŒํ‘œ์ธ์ง€ ํ™•์ธ
        if (not visited[ci][cj]): # ๋ฐฉ๋ฌธ ํ•œ ์ ์ด ์—†๋Š” ๊ฒฝ์šฐ
          q.append((ci, cj))
          visited[ci][cj] = visited[xi][xj] + 1 
          # ๋ถ€๋ชจ ๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ์†Œ ๊ฐ’์— 1์„ ๋”ํ•œ๋‹ค. 
  
  visited[s[0]][s[1]] = 0 # ์‹œ์ž‘๊ณผ ๋์ด ๊ฐ™์„ ๋•Œ
  print(visited[e[0]][e[1]])
profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€