

N개의 좌표를 받고, 그 좌표를 모두 포함하는 최소 직사각형의 넓이를 묻는 문제이다.
배열을 써야하나? 그럼 어떻게 쓰는거지? 라고 오랜시간 고민했지만 그보다 훨씬 쉬운 방법이 있었다.
int maxX = -10000;
int maxY = -10000;
int minX = 10000;
int minY = 10000;
위처럼, 먼저 최댓값, 최솟값을 지정 한 후
나중에 값을 받은것과 비교하여 갱신하면 된다.
포인트는 max value에 최소숫자를 넣고, min value에 최대숫자를 넣는다는 점이다.
아래는 위 정보를 바탕으로 설계된 코드이다.
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int maxX = -10000;
int maxY = -10000;
int minX = 10000;
int minY = 10000;
for(int i=0; i<N; i++){
int x = sc.nextInt();
int y = sc.nextInt();
if(maxX < x){ maxX = x; }
if(minX > x){ minX = x; }
if(maxY < y){ maxY = y; }
if(minY > y){ minY = y; }
}
int width = maxX - minX;
int height = maxY - minY;
System.out.println(width * height);
}
}
맞았습니다!!