도구스학업·수학

나이트 최소 이동 횟수 계산기

체스판(또는 임의 크기 격자)에서 나이트가 두 칸 사이를 오가는 최소 이동 횟수를 너비우선탐색(BFS)으로 정확히 구합니다. 판의 모든 칸을 도는 나이트 투어와는 다른, 두 칸 사이 최단거리 문제입니다.

시작 칸 (열, 행) — 0부터 시작

도착 칸 (열, 행)

최소 이동 횟수

6수

너비우선탐색(BFS)으로 구한 정확한 최단거리입니다

시작
1
2
4
3
5
도착
경로 (0부터 센 칸)(0,0) → (1,2) → (0,4) → (1,6) → (3,5) → (5,6) → (7,7)
너비우선탐색(BFS)이 최단경로를 보장합니다. 나이트가 한 수마다 갈 수 있는 여덟 칸으로 물결처럼 퍼져나가며 각 칸을 처음 밟는 순간의 물결 수가 곧 최소 이동 횟수입니다. 모든 이동의 «값»이 똑같이 1수이기 때문에 이 방식이 항상 정확합니다.
색깔로 검산할 수 있습니다. 나이트는 한 수마다 반드시 칸 색이 바뀌므로, 시작·도착 칸의 색이 같으면 최소 이동 횟수는 항상 짝수이고 다르면 항상 홀수입니다. 위 결과가 이 규칙과 어긋나면 계산이 잘못된 것입니다.
edu/knight-tour와는 다른 문제입니다. 나이트 투어는 판의 «모든 칸»을 한 번씩 밟는 경로(해밀턴 경로)를 찾는 문제라 백트래킹이 필요하지만, 이 문제는 «두 칸 사이»의 최단거리만 구하면 되므로 BFS로 항상 정확히 풀립니다.

계산 방법

  1. 1판의 가로·세로 칸 수를 넣습니다(기본 8×8 체스판).
  2. 2시작 칸과 도착 칸의 좌표를 0부터 세어 넣습니다.
  3. 3최소 이동 횟수와 실제 경로 한 가지를 확인합니다.

자주 묻는 질문

너비우선탐색(BFS)을 씁니다. 시작 칸에서 나이트가 한 수에 갈 수 있는 여덟 칸으로 물결처럼 퍼져나가며 각 칸을 처음 밟는 순간의 물결 수가 곧 그 칸까지의 최소 이동 횟수입니다. 모든 이동이 똑같이 1수라서(가중치가 균일해서) 이 방식이 항상 정확한 답을 보장합니다.

색깔 규칙으로 검산할 수 있습니다. 나이트는 한 번 움직일 때마다 반드시 칸 색이 바뀝니다(체스판처럼 칠했을 때). 그래서 시작·도착 칸의 색이 같으면 최소 이동 횟수는 항상 짝수, 다르면 항상 홀수여야 합니다. 이 계산기가 낸 값도 이 규칙을 항상 만족합니다.

edu/knight-tour는 판의 «모든 칸»을 정확히 한 번씩 밟는 경로(해밀턴 경로)를 찾는 문제로, 일반적으로 어려워 백트래킹과 휴리스틱이 필요합니다. 이 계산기는 «두 칸 사이»의 최단거리만 구하면 되는, 훨씬 단순하고 항상 정확히 풀리는 문제입니다.

네. 판이 아주 작으면(1×n 판 전체, 2×2, 2×3의 일부 칸 쌍 등) 나이트가 아예 이동할 곳이 없거나 특정 칸에 닿지 못할 수 있습니다. 이런 경우 «도달할 수 없습니다»로 정직하게 표시합니다.

됩니다. 가로·세로 칸 수를 원하는 대로(최대 200×200) 바꿀 수 있어 8×8 표준 체스판뿐 아니라 직사각형 격자나 다른 보드게임의 나이트형 말에도 그대로 적용할 수 있습니다.

알아두면 좋은 점

  • 판이 너무 커서(2만 칸을 넘으면) 그림은 생략하고 숫자와 경로 좌표만 보여줍니다.
  • 경로는 최단거리를 만족하는 여러 경로 중 BFS가 처음 찾은 하나입니다. 같은 거리의 다른 경로가 있을 수 있습니다.
  • 좌표는 왼쪽 위 (0,0)을 기준으로 오른쪽이 x, 아래가 y가 커지는 방향입니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 8일 · 결과는 참고용 추정치입니다.