minyoung

완전탐색 - 최소직사각형 본문

프로그래머스

완전탐색 - 최소직사각형

stylish-code 2024. 5. 2. 21:08

 

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

 

프로그래머스

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

programmers.co.kr

 

완전탐색 : 가능한 모든 경우의 수를 탐색하여 해답 찾기

 

// 주어진 명함의 모든 조합을 고려하여 가장 작은 지갑의 크기를 찾는 완전 탐색 방식으로 풀이

function solution(sizes) { // size는 [가로, 세로]가 배열 요소로 포함된 2차원 배열
    const width = []; // 각 명함의 가로 길이를 저장할 배열
    const height = []; // 각 명함의 세로 길이를 저장할 배열

    for(let i = 0; i < sizes.length; i++) { // 주어진 명함의 배열 순회
        const max = Math.max(sizes[i][0], sizes[i][1]); // 현재 명함의 가로 길이와 세로 길이 중 더 큰 값을 max에 저장
        const min = Math.min(sizes[i][0], sizes[i][1]); // 현재 명함의 가로 길이와 세로 길이 중 더 작은 값을 min에 저장
        width.push(max); // 각 명함의 가로 길이를 width 배열에 저장
        height.push(min); // 각 명함의 세로 길이를 height 배열에 저장
    }

    return Math.max(...width) * Math.max(...height); // 모든 명함을 수납할 수 있는 가장 작은 지갑의 크기를 구하자. 이를 위해 width 배열의 최대값과 height 배열의 최대값을 각각 곱하여 반환
}