맨해튼 거리란?
맨해튼 거리는 두 점 사이의 가로와 세로 이동 거리만을 고려해 계산하는 방식이다.
도시 블록처럼 격자 구조에서 직선이 아닌, “블록 따라 이동하는 거리”를 수학적으로 표현한 개념이다.
공식 표현
두 점 A(x₁, y₁), B(x₂, y₂)가 있을 때:
맨해튼 거리 = |x₁ − x₂| + |y₁ − y₂|
즉, x 좌표 차이의 절대값과 y 좌표 차이의 절대값을 더해 거리를 구한다.
예를 들어, A(2, 3) → B(5, 1)인 경우,
- |2 − 5| = 3 (가로 이동)
- |3 − 1| = 2 (세로 이동)
- 총 거리 = 3 + 2 = 5
맨허튼 거리는 게임 (타일 기반 거리)와 알고리즘 (휴리스틱, 탐색)에 주로 사용된다.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
int dist = abs(x1 - x2) + abs(y1 - y2);
cout << "맨해튼 거리: " << dist << endl;
return 0;
}