문제
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