4407 - 기하: 바운딩 사각형

Time Limit: 1s Memory Limit: 128MB

Snippet Judge Submissions: 599 Solved: 371
Description

좌표축에 정렬된 바운딩 사각형은 2차 좌표계의 n개의 점이 주어졌을때, 사각형의 각 변이 X와 Y축에 평행하면서 주어진 n개의 점을 포함하는 최소 크기의 사각형을 말한다. 2차 좌표계의 n개의 점이 주어졌을 때 그림 10.24d에 보이는 것처럼 바운딩 사각형을 구하는 프로그램을 만들어 보자. 

A axis-aligned bounding rectangle is the minimum rectangle that encloses a set of points in a two-dimensional plane, as shown in Figure 10.24d.

Input

* Line 1 : 점의개수 N (1~1,000)

* Line 2 ~ N+1 : 점의 x y 좌표 (공백으로 구분된 2개의 실수)

 

Output

* Line 1 : 샘플 출력처럼 사각형의 중심을 출력

* Line 2 : 샘플 출력처럼 사각형의 width와 height를 출력

 

Sample Code
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        double[][] points = new double[N][2];
        for (int i = 0; i < N; i++) {
            points[i][0] = sc.nextDouble();
            points[i][1] = sc.nextDouble();
        }
        MyRectangle2D boundingRectangle = MyRectangle2D.getRectangle(points);
        System.out.printf("x, y: %.1f, %.1f\n", boundingRectangle.getX(), boundingRectangle.getY());
        System.out.printf("w, h: %.1f, %.1f\n", boundingRectangle.getWidth(), boundingRectangle.getHeight());
    }
}

YOUR_CODE
Sample Input
3
3 1
-5 -5
0 7
Sample Output
x, y: -1.0, 1.0
w, h: 8.0, 12.0
Source

JAVA2015 PE10.15