Programmers
[프로그래머스][JS] 직사각형 넓이 구하기
winter17
2023. 7. 6. 12:34
https://school.programmers.co.kr/learn/courses/30/lessons/120860
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 과정
function solution(dots) {
let xArr = []
let yArr = []
for (let i = 0; i < dots.length; i++){
const [x, y] = dots[i]
xArr.push(x)
yArr.push(y)
}
const xResult = Math.max(...xArr) - Math.min(...xArr)
const yResult = Math.max(...yArr) - Math.min(...yArr)
return xResult * yResult;
}
좌표상에서 직사각형 넓이를 구하려면 x좌표 길이, y좌표 길이를 구해서 곱해주면 되는데
x좌표 길이 = (x값 중에 가장 큰 값 - x값 중에 가장 작은 값)
y좌표 길이 = (y값 중에 가장 큰 값 - y값 중에 가장 작은 값)
직사각형 넓이 = x좌표 길이 * y좌표 길이
위처럼 풀면 답을 도출해 낼 수 있다.
만약 위의 과정이 이해가 안 된다면 dots 배열에 있는 좌표를 직접 그려보는 것도 도움이 될 것이다.
나는 x좌표, y좌표를 각각 다른 배열에 담아서 그 배열에서 최대, 최소 값을 찾아 곱해주는 방식으로 풀었다.
function solution(dots) {
var answer = 0;
// (x2 - x1) * (y2 - y1)
const xArr = dots.map(x => x[0])
const x = Math.max(...xArr) - Math.min(...xArr)
// console.log(x)
const yArr = dots.map(x => x[1])
const y = Math.max(...yArr) - Math.min(...yArr)
// console.log(y)
answer = x * y
return answer;
}
리뷰
좌표 보는 방법을 까먹어서 [질문하기]에 있는 힌트를 보고 알았는데 그림을 그려서 계산해 보면 엄청 쉽다...