본문 바로가기
백준알고리즘/DFS 와 BFS

(Python/🥈1)백준 알고리즘 7562번: 나이트의 이동

by windy7271 2023. 2. 17.
728x90
반응형

문제 출처:https://www.acmicpc.net/problem/7562

 

7562번: 나이트의 이동

체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수

www.acmicpc.net

풀이:

import sys
from collections import deque

T = int(input())
move = [(-2,1),(-1,2),(1,2),(2,1),(-2,-1),(-1,-2),(1,-2),(2,-1)]

def bfs(a,b):
    queue = deque([(a,b)])
    while queue:
        x, y = queue.popleft()
        if x == na and y == nb:
            return  board[x][y] -1
        for xx, yy in move:
            nx,ny = x+xx, y+yy
            if 0 <= nx < N and 0 <= ny <N and board[nx][ny] == 0:
                queue.append((nx,ny))
                board[nx][ny] = board[x][y] + 1
for i in range(T):
    N = int(input())
    a, b = map(int,input().split(" "))
    na, nb = map(int,input().split(" "))

    board = [[0] * N for _ in range(N)]
    board[a][b] = 1

    print(bfs(a,b))

 

move 설정 제대로 해야함. 저것땜에 괜한것 고치고 있었다.

 

 

 

반응형

댓글