본문 바로가기

프로그래머스/완전탐색

[완전탐색] 프로그래머스 '최소직사각형' - js

반응형

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/86491

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2. 코드

function solution(sizes) {
    let width = 0; let height = 0;
    
    for(let i=0;i<sizes.length;i++){
        if(sizes[i][0] < sizes[i][1]){
            [sizes[i][0],sizes[i][1]] = [sizes[i][1],sizes[i][0]];
        }
        if(sizes[i][0] > width) width = sizes[i][0];
        if(sizes[i][1] > height) height = sizes[i][1];
    }
    
    return width * height;
}

 

다른 사람의 코드)

map을 사용할 때 구조분해할당이 될까? 의구심이 들어 위의 방식대로 했는데, 다른 사람의 풀이에 보니 아래처럼 사용할 수 있다는 것을 배웠다. 아주 유용하게 잘쓸 것 같다! 아직까지는 forEach보다 for문이 익숙한데, 나중에는 forEach도 많이 쓰도록 해봐야겠다.

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];
}

 

복기

4/13
반응형