반응형
Notice
Recent Posts
Archives
Today
Total
Link
관리 메뉴

꾸준하게

[JS코테] 완전탐색 - 최소직사각형 본문

JS코딩테스트

[JS코테] 완전탐색 - 최소직사각형

DaeunCoding 2023. 5. 11. 14:59
728x90
반응형

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

 

프로그래머스

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

programmers.co.kr

모든 명함의 가로 길이와 세로 길이를 나타내는 2차원 배열 sizes가 매개변수로 주어집니다. 모든 명함을 수납할 수 있는 가장 작은 지갑을 만들 때, 지갑의 크기를 return 하도록 solution 함수를 완성해주세요.

 

[나의풀이]

function solution(sizes) {
    let sizesOrder = sizes.map(x => x.sort((a,b) => a-b));
    let sizesShort = Math.max(...sizesOrder.map(x => x[0]));
    let sizesLong = Math.max(...sizesOrder.map(x => x[1]));
    return sizesShort * sizesLong;
}
function solution(sizes) {
    // sizes를 오름차순으로 재정렬한 sizesOrder 선언
    let sizesOrder = sizes.map(x => x.sort((a,b) => a-b));
    // 짧은 쪽 중 가장 긴 길이
    let sizesShort = Math.max(...sizesOrder.map(x => x[0]));
    // 긴 쪽 중 가장 긴 길이
    let sizesLong = Math.max(...sizesOrder.map(x => x[1]));
    return sizesShort * sizesLong;
}

 

[다른풀이]

function solution(sizes) {
    // 배열 sizes의 이중배열을 오름차순으로 재배열
    const rotated = sizes.map(([w, h]) => w < h ? [h, w] : [w, h]);

    // maxSize 배열을 미리 선언
    let maxSize = [0, 0];
    // rotated의 각 요소의 index 0, index 1인 수가 각각 w, h보다 크면 대입
    rotated.forEach(([w, h]) => {
        if (w > maxSize[0]) maxSize[0] = w;
        if (h > maxSize[1]) maxSize[1] = h;
    })
    return maxSize[0]*maxSize[1];
}

 

# forEach

https://semoal24.tistory.com/44

 

[JS] Array - 배열 관련 정리

length Array.length 배열의 길이 reduce Array.reduce((acc, curr) => 함수식, in) acc : 이전 curr을 함수식에 대입하여 받아낸 값. curr : 현재 input할 값. in : acc의 초기값 ex. 배열의 모든 요소를 더한 값 array.reduce((a

semoal24.tistory.com

 

728x90
반응형