반응형

● 문제 접근 과정

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

 

9063번: 대지

첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. 

www.acmicpc.net

 

반응형

+ Recent posts