백준 - 9063번 대지(수학)

Kiwoong Park·2023년 7월 18일
0

문제

예를 들어 위와 같이 (2, 1), (3, 2), (5, 2), (3, 4) 네 점에서 옥구슬을 발견하였다면, 임씨에게 돌아갈 대지는 (2, 1), (5, 1), (2, 4), (5, 4)를 네 꼭짓점으로 하는 직사각형이며, 넓이는 (5 - 2) × (4 - 1) = 9 가 된다.

입력

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

출력

첫째 줄에 N 개의 점을 둘러싸는 최소 크기의 직사각형의 넓이를 출력하시오.

C++ 풀이

초기화 후 최솟값과 최대값을 갱신하면서 마지막에 그 차이로 너비를 구하면 된다.

#include <iostream>
using namespace std;

int main()
{
    int N,x,x1(-10001),x2(10001),y,y1(-10001),y2(10001);
    for(cin>>N;N--;){
        cin >> x >> y;
        // max update
        if (x>x1) x1=x;
        if (y>y1) y1=y;
        // min update
        if (x<x2) x2=x;
        if (y<y2) y2=y;
    }
    cout << (x1-x2)*(y1-y2);
}
profile
You matter, never give up

3개의 댓글

comment-user-thumbnail
2023년 7월 18일

정말 유익한 글이었습니다.

답글 달기
comment-user-thumbnail
2023년 7월 18일

글이 잘 정리되어 있네요. 감사합니다.

1개의 답글