공부하기/백준

[Java] 백준 풀기 9063 - 대지

XEV 2023. 8. 4. 23:41

자바 백준 9063번

브론즈 3

https://www.acmicpc.net/problem/9063

 

9063번: 대지

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

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 구현, 기하학

 

 

 

 

 

문제 풀기

모든 점을 포함하는 가장 작은 사각형을 찾기 위해서 입력되는 x, y 좌표를 각각 비교하여 최소값, 최대값을 기록한다.

x 좌표의 (최대값 - 최소값)은 사각형의 가로 길이가 되며, y 좌표의 (최대값 - 최소값)은 사각형의 세로 길이가 된다.

이렇게 찾은 가로 세로를 통해 최소 사각형의 넓이를 구한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int N = sc.nextInt();
        int minX = Integer.MAX_VALUE, minY = Integer.MAX_VALUE;
        int maxX = Integer.MIN_VALUE, maxY = Integer.MIN_VALUE;
        
        for (int i = 0; i < N; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            minX = Math.min(minX, x);
            minY = Math.min(minY, y);
            maxX = Math.max(maxX, x);
            maxY = Math.max(maxY, y);
        }
        
        int width = maxX - minX;
        int height = maxY - minY;
        int area = width * height;
        
        System.out.println(area);
    }
    
}