본문 바로가기

Algorithm/정수론

Manhattan Distance

맨해튼 거리

맨해튼 거리는 흔히 사용하는 유클리드 거리와 다르게 좌표축에 평행하게 이동하여 길이를 구한다.

 q=(q1,q2,…,qn)를 공간벡터라 할 때,

d1(p,q)=‖p−q‖1=∑i=1n|pi−qi|이다.

 

코딩에서는 마름모형태를 구할때 사용한다.

for(int x = 0; x < size; x++){
	for(int y = 0; y < size; y++){

		for(int i = 0; i < size; i++){
			for(int j = 0; j < size; j++){
				if((Math.abs(i-x)+Math.abs(j-y))<=k)
					System.out.print(arr[i][j]); //마름모에 속한 인덱스속 값만 출력

이차원 배열에서 (x, y)를 기준으로 k만큼 떨어져 있는 마름모를 구하는 코드이다. 각 값들의 범위를 잘 조정해 주면 배열의 크기보다 큰 마름모 까지 확인을 하며 결국 정사각형 형태를 볼 수도 있다.

'Algorithm > 정수론' 카테고리의 다른 글

에라토스테네스의 체 (Sieve of Eratosthenes)  (0) 2026.03.09
유클리드 호제법  (0) 2026.03.07