λ¬Έμ
https://www.acmicpc.net/problem/7562
7562λ²: λμ΄νΈμ μ΄λ
체μ€ν μμ ν λμ΄νΈκ° λμ¬μ Έ μλ€. λμ΄νΈκ° ν λ²μ μ΄λν μ μλ μΉΈμ μλ κ·Έλ¦Όμ λμμλ€. λμ΄νΈκ° μ΄λνλ €κ³ νλ μΉΈμ΄ μ£Όμ΄μ§λ€. λμ΄νΈλ λͺ λ² μμ§μ΄λ©΄ μ΄ μΉΈμΌλ‘ μ΄λν μ
www.acmicpc.net
νμ΄
λ¨Όμ BFSλ‘ νμμ λ μκ°μ΄κ³Όκ° λμ pypy3λ‘ νμΈν΄λ΄€λλ μ±κ³΅νμλ€.
μ μκ°μ΄κ³Όκ° λ¬λμ§ κ³°κ³°ν μκ°ν΄λ³΄λ©΄μ μκ°λ³΅μ‘λλ₯Ό κ³μ°ν΄λ³΄κ³ μ°μ°μ μ΅μν μν€λλ‘ μ½λλ₯Ό λ°κΎΈμλ€.
# λ°±μ€ 7562λ² λ¬Έμ - λμ΄νΈμ μ΄λ
from collections import deque
import sys
input = sys.stdin.readline
dx = [1,1,-1,-1,2,2,-2,-2]
dy = [2,-2,2,-2,1,-1,1,-1]
t = int(input())
def bfs(cur_x, cur_y):
queue = deque()
queue.append((cur_x, cur_y))
while queue:
x, y = queue.popleft()
if x == move_x and y == move_y:
print(graph[x][y])
break
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < l and 0 <= ny < l and graph[nx][ny] == 0:
graph[nx][ny] = graph[x][y] + 1
queue.append((nx, ny))
for _ in range(t):
l = int(input())
graph = [[0]*(l) for _ in range(l)]
cur_x, cur_y = map(int, input().split())
move_x, move_y = map(int, input().split())
bfs(cur_x, cur_y)
λμ μ²μ νμ΄
# λ°±μ€ 7562λ² λ¬Έμ - λμ΄νΈμ μ΄λ
from collections import deque
import sys
dx = [1,1,-1,-1,2,2,-2,-2]
dy = [2,-2,2,-2,1,-1,1,-1]
t = int(input())
def bfs(cur_x, cur_y):
queue = deque()
queue.append((cur_x, cur_y))
while queue:
x, y = queue.popleft()
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if nx < 0 or nx >= l or ny < 0 or ny >= l:
continue
if graph[nx][ny] == 0:
graph[nx][ny] = 1
visited[nx][ny] = visited[x][y] + 1
queue.append((nx, ny))
if graph[nx][ny] == 2:
graph[nx][ny] = 1
visited[nx][ny] = visited[x][y] + 1
for _ in range(t):
l = int(input())
graph = [[0]*(l) for _ in range(l)]
visited = [[0]*(l) for _ in range(l)]
cur_x, cur_y = map(int, input().split())
move_x, move_y = map(int, input().split())
graph[move_x][move_y] = 2
if cur_x == move_x and cur_y == move_y:
print(0)
else:
bfs(cur_x, cur_y)
print(visited[move_x][move_y])
'ποΈ Algorithm > π© λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
π© [λ°±μ€] [Python] [BFS/DFS] 10026λ²_μ λ‘μμ½ (0) | 2022.11.17 |
---|---|
π© [λ°±μ€] [Python] [BFS/DFS] 4963λ²_μ¬μ κ°μ (0) | 2022.11.16 |
π© [λ°±μ€] [Python] [BFS/DFS] 14502λ²_μ°κ΅¬μ (0) | 2022.11.16 |
π© [λ°±μ€] [Python] [BFS/DFS] 18352λ²_νΉμ 거리μ λμ μ°ΎκΈ° (0) | 2022.11.16 |
π© [λ°±μ€] [Python] [Class3] 5430λ²_AC (0) | 2022.11.16 |