백준7562(파이썬) - 나이트의 이동
resilient
·2021. 5. 16. 21:11
728x90
반응형
https://www.acmicpc.net/problem/7562
7562번: 나이트의 이동
체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수
www.acmicpc.net
import sys
from collections import deque
input = sys.stdin.readline
dx = [-1, -2, -2, -1, 1, 2, 2, 1]
dy = [2, 1, -1, -2, -2, -1, 1, 2]
def bfs(start_x,start_y,final_x,final_y):
q = deque()
q.append([start_x,start_y])
visited[start_x][start_y] = 1
while q:
x,y = q.popleft()
if x==final_x and y==final_y:
print(visited[x][y]-1)
return
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if nx>=0 and nx<n and ny>=0 and ny<n and visited[nx][ny]==0:
q.append([nx,ny])
visited[nx][ny] = visited[x][y]+1
loop = int(input())
for i in range(loop):
n = int(input())
start_x,start_y = map(int,input().split())
final_x,final_y = map(int,input().split())
visited = [[0]*n for _ in range(n)]
bfs(start_x,start_y,final_x,final_y)
반응형
'자료구조 & 알고리즘 > 백준(Baekjoon)' 카테고리의 다른 글
백준1699(파이썬) - 제곱수의 합 (0) | 2021.05.17 |
---|---|
백준2583(파이썬) - 영역 구하기 (0) | 2021.05.17 |
백준11727(파이썬) - 2 x n 타일링2 (0) | 2021.05.14 |
백준1931(파이썬) - 회의실 배정 (0) | 2021.05.06 |
백준15686(파이썬) - 치킨 배달 (0) | 2021.05.04 |