프론트엔드✏️/개인공부
[알고리즘] 최소직사각형
당근먹는하니
2022. 8. 20. 16:10
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/86491
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
// 내가 푼 풀이
function solution(sizes) {
console.log(sizes.map((el)=> {
return el.sort((a,b)=> b-a)
}))
let w = [];
let h = [];
for(let i = 0 ; i<sizes.length; ++i) {
w.push(sizes[i][0]);
h.push(sizes[i][1]);
}
return Math.max(...w)*Math.max(...h);
}
solution([[60, 50], [30, 70], [60, 30], [80, 40]]) // 4000
console.log를 안 지웠다. 저기 안에 있는 것만 빼고 console.log는 지워야 한다!
// 다른 사람 풀이
function solution(sizes) {
const rotated = sizes.map(([w, h]) => w < h ? [h, w] : [w, h]);
let maxSize = [0, 0];
rotated.forEach(([w, h]) => {
if (w > maxSize[0]) maxSize[0] = w;
if (h > maxSize[1]) maxSize[1] = h;
})
return maxSize[0]*maxSize[1];
}
변수 선언을 maxSize = [0, 0]; 배열로 묶어서 쓴게 보기 좋은 것 같다.
나는 let w, let h라고 했음...!
그리고 정렬된 데이터에 forEach돌리기!!! 그럼 불필요하게 배열을 만들어서 push 할 필요가 없다.
728x90
반응형