개인사
[S2] 백준 14400번 편의점 2 C++ 수학, 정렬 본문
728x90

리뷰

https://www.acmicpc.net/problem/14400
맨허튼 거리 합 최소를 구하는 문제
전역 변수
- N : 배열의 최대 크기를 정의할 상수 변수
- xs, ys : x, y좌표를 저장할 배열
- n : 좌표의 개수를 저장할 변
함수
없음
문제풀이
- n값을 입력 받고, n개의 좌표를 입력 받아 xs, ys배열을 초기화한다.
- sort함수를 통해 xs, ys배열을 오름차순으로 정렬한다.
- 변수 sum을 0으로 초기화 하고, 변수 mx, my를 각 배열의 중앙값으로 저장한다.
- n개의 좌표를 순회하며 mx와 각 x좌표의 거리와 my의 각 y좌표의 거리의 합을 sum에 더해준다.
- sum에 저장된 값을 출력한다.
트러블 슈팅
없음
참고 사항
없음
정답 코드
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5;
int xs[N], ys[N];
int n;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 0; i < n; ++i) {
int x, y; cin >> x >> y;
xs[i] = x, ys[i] = y;
}
sort(xs, xs + n);
sort(ys, ys + n);
long long sum = 0;
int mx = xs[n / 2], my = ys[n / 2];
for (int i = 0; i < n; ++i) sum += abs(mx - xs[i]) + abs(my - ys[i]);
cout << sum;
}728x90
'알고리즘 공부 > C++' 카테고리의 다른 글
| [G4] 백준 14411번 합집합 C++ 스택, 정렬 (1) | 2026.01.16 |
|---|---|
| [S4] 백준 15736번 청기 백기 C++ 수학, 정수론 (0) | 2026.01.15 |
| [G2] 백준 3066번 브리징 시그널 C++ 이분 탐색, lower_bound (0) | 2026.01.14 |
| [P3] 백준 2873번 롤러코스터 C++ 구현, 그리디 알고리즘, 홀짝성, 해 구성하기 (1) | 2026.01.12 |
| [G5] 백준 34558번 Prime Median C++ 에라토스테네스의 체, 누적 합, 이분 탐색 (0) | 2026.01.11 |
