Javascript - 직사각형 넓이 구하기

이율곡·2023년 7월 6일

Programmers

목록 보기
24/44
post-thumbnail

직사각형 넓이 구하기

문제

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

입출력 예

dotsresult
[[1, 1], [2, 1], [2, 2], [1, 2]]1
[[-1, -1], [1, 1], [1, -1], [-1, 1]]4

접근방법

이 문제의 핵심은 평행한 직사각형의 넓이를 계산하는 것이다. 직사각형의 넓이는 가로(x축) x 세로(y축)다. 그렇기 때문에 알아야 할 것은 x축의 길이, y축의 길이다.

  1. dots 배열에서 x좌표와 y좌표를 별도로 추출.
  2. x좌표의 최대값과 최소값을 구하고 빼서 x축의 길이를 구함 => width.
  3. y좌표의 최대값과 최소값을 구하고 빼서 y축의 길이를 구함 => height.
  4. width * height로 넓이를 구함

풀이

function solution(dots) {
    let xs = dots.map(dot => dot[0]);
    let ys = dots.map(dot => dot[1]);

    let width = Math.max(...xs) - Math.min(...xs);
    let height = Math.max(...ys) - Math.min(...ys);

    return width * height;
}

풀이는 간단하다. 우선 dots에서 x좌표와 y좌표를 나눠 담는다. 그리고 width 변수에는 x좌표에서 가장 큰 값과 작은 값을 구하고 차이를 구하고, height 변수도 마찬가지로 구한다. 그리고 이를 곱하면 끝난다.


정리하기

이번에는 간단하게 좌표에서 직사각형의 넓이를 구하는 문제를 풀었다. 이 문제에서 중요한 점은 x좌표와 y좌표의 값을 어떻게 추출하는 가에 대한 부분이었다. 이 부분은 map이라는 함수로 새로운 배열을 만들면 되는 점을 알고 있으면 좋을 것 같다.

사각형 완료!

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글