반응형
● 문제 접근 과정
1. 첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다.
2. 예를 들어 위와 같이 (2, 1), (3, 2), (5, 2), (3, 4) 네 점에서 옥구슬을 발견하였다면, 임씨에게 돌아갈 대지는 (2, 1), (5, 1), (2, 4), (5, 4)를 네 꼭짓점으로 하는 직사각형이며, 넓이는 (5 - 2) × (4 - 1) = 9 가 된다.
3. (maxx - minx) * (maxy - miny) 해당문제에서 직사 각형의 넓이 구하는 공식.을 이용하여 구현
4. if문을 이용하여 max와 min값을 찾고 위에 나온 공식을 적용하여 출력.
● 구현
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
int N;
int minx = 100000;
int maxx = -100000;
int miny = 100000;
int maxy = -100000;
cin >> N;
int *x = new int[N]; // N만큼 동적할당
int *y = new int[N]; // N만큼 동적할당
for (int i = 0; i < N; ++i) {
cin >> x[i] >> y[i];
if (minx > x[i])
minx = x[i];
if (maxx < x[i])
maxx = x[i];
if (miny > y[i])
miny = y[i];
if (maxy < y[i])
maxy = y[i];
}
cout << (maxx - minx) * (maxy - miny);
//(가장 큰 x좌표 - 가장 작은 x좌표) * (가장 큰 y좌표 - 가장 작은 y좌표)
}
https://www.acmicpc.net/problem/9063
반응형