본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 - 9063번: 대지 [Java]

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

 

9063번: 대지

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

www.acmicpc.net

1. 코드

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		int[] wh = {Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE}; 
		while(N-- > 0) {
			int w = sc.nextInt();
			int h = sc.nextInt();
			
			if(wh[0] > w) wh[0] = w;
			if(wh[2] < w) wh[2] = w;
			
			if(wh[1] > h) wh[1] = h;
			if(wh[3] < h) wh[3] = h;
		}
		System.out.println((wh[2] - wh[0]) * (wh[3] - wh[1]));
	}
}

2. 설명

wh[0]은 사각형 너비의 시작점, wh[2]은 사각형 너비의 끝 부분, wh[1]은 사각형 높이의 시작점, wh[3]은 사각형 높이의 끝부분을 저장하며 사각형의 넓이를 구하면 해결