Algorithm/Programmers
[프로그래머스 JS] 직사각형 넓이 구하기 / Math.max() Math.min()
그랴
2022. 12. 9. 15:11
더보기
제한사항
입출력 예dotsresult
입출력 예 설명
문제 설명
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.
제한사항
- dots의 길이 = 4
- dots의 원소의 길이 = 2
- -256 < dots[i]의 원소 < 256
- 잘못된 입력은 주어지지 않습니다.
입출력 예dotsresult
[[1, 1], [2, 1], [2, 2], [1, 2]] | 1 |
[[-1, -1], [1, 1], [1, -1], [-1, 1]] | 4 |
입출력 예 설명
입출력 예 #1
- 좌표 [[1, 1], [2, 1], [2, 2], [1, 2]] 를 꼭짓점으로 갖는 직사각형의 가로, 세로 길이는 각각 1, 1이므로 직사각형의 넓이는 1 x 1 = 1입니다.
입출력 예 #2
- 좌표 [[-1, -1], [1, 1], [1, -1], [-1, 1]]를 꼭짓점으로 갖는 직사각형의 가로, 세로 길이는 각각 2, 2이므로 직사각형의 넓이는 2 x 2 = 4입니다.
1. x좌표 값만 모은 배열과 y좌표 값만 모은 배열을 각각 만든다.
2. 각 배열에서 최대값과 최소값을 구한다.
3. 그들 사이의 차이값의 절대값을 구해 가로 세로 길이를 구한다.
4. 곱해서 넓이를 구한다.
function solution(dots) {
let x_arr = [];
let y_arr = [];
dots.map((dot)=>{
x_arr.push(dot[0]);
y_arr.push(dot[1]);
})
let x = Math.abs(Math.max(...x_arr) - Math.min(...x_arr));
let y = Math.abs(Math.max(...y_arr) - Math.min(...y_arr));
let answer = x*y;
return answer;
}
배열의 최대값과 최소값을 구할 때 자꾸 실수를 해서 이제 안 까먹으려고 적어놓는다.
...array 까먹지 말자! (Math.max(array), Math.max([array]) 둘다 안됨)
const array1 = [1, 3, 2];
console.log(Math.max(...array1));
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/max
Math.max() - JavaScript | MDN
**Math.max()**함수는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환합니다.
developer.mozilla.org