[백준 JAVA] 9063번 풀이 - 대지
by mini_min

package baekjoon; import java.util.Scanner; /** * 대지 * 9063번 풀이 * *임씨의 이름이 새겨진 옥구슬이 나오는 모든 지점을 포함하는 가장 작은 평행한 변을 갖는 직사각형을 대지로 인정한다. *옥구슬의 위치 N개가 주어질 때, 임씨에게 돌아갈 대지의 넓이를 계산하라. *옥구슬은 같은 위치에 여러 개가 발견될 수 있으며, x는 양의 방향의 동쪽, y축의 양의 방향을 북쪽으로 가정한다. * *첫째 줄에는 점의 개수 n이 주어진다. *이어지는 n줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. *좌표는 -10000 이상 10000 이하의 정수이다. * * */ public class _9063 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int x_max = -10001; int y_max = -10001; int x_min = 0; int y_min = 0; for ( int i = 0; i < n; i++ ) { int x = sc.nextInt(); if ( x > x_max ) x_max = x; //초기 최솟값 세팅 if ( i == 0 ) { x_min = x; } else { if ( x < x_min ) x_min = x; } int y = sc.nextInt(); if ( y > y_max ) y_max = y; //초기 최솟값 찾기 if ( i == 0 ) { y_min = y; } else { if ( y < y_min ) y_min = y; } } System.out.println((x_max - x_min) * (y_max - y_min)); sc.close(); } }
풀이
주어진 값은 -10000 보다 크고 10000 이하라고 했다.
1. max 값을 -10001 로 설정하여 x , y 값을 받는대로 최대값인지 판단했다.
2. min 값도 마찬가지로 x, y 값을 받는대로 최소값인지 판단했다.
이렇게 하여 x의 최대값 - x의 최소값 , y의 최대값 - y의 최소값을 구해 넓이를 구했다. (곱하기)
블로그의 정보
개발자 미니민의 개발로그
mini_min