JAVA/Coding Test

[JAVA] 백준 9063 대지_기하

오늘도개발 2023. 3. 23. 13:42

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

 

9063번: 대지

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

www.acmicpc.net

 

 접근 : 

 

 - 좌표의 갯수 n 을 입력받는다.

 

 - x 좌표 최대/최소 , y 좌표 최대/최소 값을 구한다.

 

 - (Xmax - Xmin) * (Ymax-Ymin) 을 구해서 출력한다.

 

 

 코드 구현 : 

 

import java.io.*;

public class Main {

	public static void main(String[] srgs) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		int max_x = -10000;
		int min_x = 10000;
		int max_y = -10000;
		int min_y = 10000;
		int temp_x = 0;
		int temp_y = 0;
		String[] input = new String[2];

		for (int i = 0; i < n; i++) {
			input = br.readLine().split(" ");
			temp_x = Integer.parseInt(input[0]);
			temp_y = Integer.parseInt(input[1]);

			max_x = (max_x < temp_x) ? temp_x : max_x;
			min_x = (min_x > temp_x) ? temp_x : min_x;
			max_y = (max_y < temp_y) ? temp_y : max_y;
			min_y = (min_y > temp_y) ? temp_y : min_y;
		}
		System.out.println((max_x - min_x) * (max_y - min_y));

		br.close();
	}
}