본문 바로가기
코딩테스트/자바 Level 0

[Java] 직사각형 넓이 구하기

by onggury 2023. 6. 28.

문제

2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.

 

 

제한사항

  • dots 의 길이 = 4
  • dots 의 원소의 길이 = 2
  • -256 < dots[i] 의 원소 < 256
  • 잘못된 입력은 주어지지 않습니다.

 

class Solution {
    public int solution(int[][] dots) {
        double width = 0;
        double hight = 0;
        for(int i = 1; i < dots.length; i++) {
            if (dots[0][0] == dots[i][0]) {
                hight = Math.pow(dots[i][0]-dots[0][0], 2) + Math.pow(dots[i][1]-dots[0][1], 2);
            }
            else if (dots[0][1] == dots[i][1]) {
                width = Math.pow(dots[i][0]-dots[0][0], 2) + Math.pow(dots[i][1]-dots[0][1], 2);
            }
        }
        
        return (int)(Math.sqrt(width) * Math.sqrt(hight));
    }
}

평행하다는 조건덕분에 첫번째 원소, 즉 첫번째로 주어지는 좌표값을 가지고 해결하였다.

평행하기 때문에 한 좌표값을 기준으로 바로 위에 있는 값은 x 좌표값이 동일할 것이고,

바로 옆에 있는 값은 y 좌표값이 동일할 것이다.

그렇게 2차원배열에 위 조건을 만족하는 두개의 원소(좌표값)을 찾고 두 점 사이의 거리 공식으로 해결하였다.

 

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120860