문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

4041 : 체스 나이트 이동

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 6 •통과: 2 •만든사람: suakii

4041 : 체스 나이트 이동

시간 1.000s · 메모리 256MB · 제출 6 · 정답 2

문제 설명

$N \times N$ 크기의 체스판에서 나이트가 출발 위치 $(r_1, c_1)$에서 목표 위치 $(r_2, c_2)$까지 이동하는 최소 이동 횟수를 구하라.

나이트의 이동 방식: 한 방향으로 2칸, 수직 방향으로 1칸 이동 (L자 형태). 총 8방향으로 이동 가능하다.

체스판 밖으로는 이동할 수 없다. 만약 목표 위치에 도달이 불가능하면 -1을 출력한다.

[제약 조건]
• $4 \le N \le 8$
• $1 \le r_1, c_1, r_2, c_2 \le N$
• 입력되는 모든 값은 정수

입력 설명

첫째 줄에 체스판 크기 $N$, 출발 위치 $r_1, c_1$, 목표 위치 $r_2, c_2$가 공백으로 구분되어 주어집니다.

출력 설명

최소 이동 횟수를 출력한다. 이동이 불가능하면 -1을 출력한다.

입력 예시
COPY
복사되었습니다!

4 1 1 2 3

출력 예시
COPY
복사되었습니다!

1

도움

BFS(너비 우선 탐색)를 이용하면 최단 경로를 구할 수 있다.

나이트의 8가지 이동 방향:
$(\pm1, \pm2),\ (\pm2, \pm1)$

$N \times N$ 체스판에서는 대부분의 경우 도달 가능하지만, 특수한 경우(예: N=4, 모서리 간 이동)에 불가능한 경우가 있다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘