PS/백준

실버1 나이트의 이동(7562)

2023. 12. 22. 15:23
 

7562번: 나이트의 이동

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

www.acmicpc.net

처음 이문제를 풀었는데 계속 답이 나오지 않았다. matrix를 출력해보니 한 방향으로 가지 않는 것이였다. 그래서 살펴보니 directions의 배열에 잘못 입력을 해서 문제였다. 배열을 잘 고쳐서 8방향 전부 갈 수 있게 만들어 풀 수 있었다.

import sys
from collections import deque
input = sys.stdin.readline

directions = [(-2, -1), (-1, -2), (2, 1), (1, 2), (-2, 1), (-1, 2), (2, -1), (1, -2)]

def bfs(startX, startY, destX, destY):
  queue = deque([(startX, startY)])
  matrix[startX][startY] = 1 # matrix 증가 시키자!
  while queue:
    v = queue.popleft()
    for d in directions:
      nextX, nextY = v[0]+d[0], v[1]+d[1]
      if (0<=nextX<n and 0<=nextY<n) and not matrix[nextX][nextY]:
        queue.append((nextX, nextY))
        matrix[nextX][nextY] = matrix[v[0]][v[1]] + 1
        if (nextX, nextY) == (destX, destY): return matrix[destX][destY] - 1

for _ in range(int(input())):
  n = int(input())
  matrix = [[0]*n for _ in range(n)]
  startX, startY = map(int, input().split())
  destX, destY = map(int, input().split())
  if (startX, startY) == (destX, destY): print(0)
  else: print(bfs(startX, startY, destX, destY))

 

'PS > 백준' 카테고리의 다른 글

골드5 뱀과 사다리 게임(16928)  (1) 2023.12.28
골드5 토마토(7569)  (0) 2023.12.27
골드5 토마토(7576)  (1) 2023.12.26
실버2 유기농 배추(1012)  (1) 2023.12.21
실버3 바이러스(2606)  (0) 2023.12.02
'PS/백준' 카테고리의 다른 글
  • 골드5 토마토(7569)
  • 골드5 토마토(7576)
  • 실버2 유기농 배추(1012)
  • 실버3 바이러스(2606)
jjw000628
jjw000628
jjw000628
wldnd2
jjw000628
전체
오늘
어제
  • 분류 전체보기 (27)
    • Skill Up (1)
      • Algorithm Theory (1)
      • Java (0)
      • JS (0)
      • 프로젝트 및 회고 (0)
    • PS (23)
      • 백준 (15)
      • 프로그래머스 (8)
    • Lab (3)
      • Basic Concept (0)
      • 무선 이동 통신 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 파이썬
  • 브루트포스
  • 너비우선탐색
  • 분할정복
  • 깊이우선탐색
  • JS
  • 무선
  • 프로그래머스
  • 네트워크
  • 재귀
  • 누적합
  • 정규식
  • BFS
  • Cpp
  • 백준
  • DP
  • 알고리즘
  • C++
  • dfs
  • 파싱
  • 문자열
  • 그래프
  • 그래프탐색

최근 댓글

최근 글

hELLO · Designed By 정상우.
jjw000628
실버1 나이트의 이동(7562)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.