반응형
간단히 말해 x,y 좌표 위의 점들을 포함하는 가장 작은 사각형의 면적을 구하는 문제이다.
조건에서 동서, 남북으로 평행한 네 변을 가지는 사각형을 구하는 것이라고 했으니 더욱 간단해진다.
좌표 위에서 직사각형의 넓이는 (x2-x1) x (y2-y1) 이 되므로 구슬이 있는 지점들의 최대값을 x2, y2에, 최소값을 x1, y1에 저장하면 된다.
코드를 보면 다음과 같다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] x = new int[n];
int[] y = new int[n];
int xmin = 10000;
int xmax = -10000;
int ymin = 10000;
int ymax = -10000;
int area = 0;
for (int i = 0; i < n; i++) {
x[i] = sc.nextInt();
y[i] = sc.nextInt();
if (xmin > x[i]) {
xmin = x[i];
}
if (ymin > y[i]) {
ymin = y[i];
}
if (xmax < x[i]) {
xmax = x[i];
}
if (ymax < y[i]) {
ymax = y[i];
}
}
area = (xmax - xmin) * (ymax - ymin);
System.out.println(area);
sc.close();
}
}
문제에 명시된 대로 좌표의 범위가 10000부터 -10000까지 제한되므로 최소값을 10000, 최대값을 -10000으로 초기화 한 뒤, 루프를 반복하면서 최소값과 최대값을 비교하여 저장한 후, 직사각형의 넓이를 구하면 된다.
반응형
'Java > 백준알고리즘' 카테고리의 다른 글
[Java] 백준알고리즘 #10953 A + B - 6 (0) | 2023.09.27 |
---|---|
[Java] 백준알고리즘 # 10101 삼각형 외우기 (0) | 2023.09.27 |
[Java] 백준알고리즘 #15894 수학은 체육과목 입니다 (0) | 2023.09.26 |
[Java] 백준알고리즘 #1977 완전제곱수 (0) | 2021.07.30 |
[Java] 백준알고리즘 #1094 막대기 (0) | 2021.04.27 |