본문 바로가기
알고리즘/완전탐색

[프로그래머스 연습문제 level_1 ] 최소직사각형

by happyhelen 2024. 1. 15.

 

class Solution {
    
    public int solution(int[][] sizes) {
        int tmpW = 0;
        int tmpH = 0;
        
        for(int i=0; i<sizes.length; i++){
            if(sizes[i][0]<sizes[i][1]){
                int tmp = sizes[i][1];
                sizes[i][1] = sizes[i][0];
                sizes[i][0] = tmp;
            }
            tmpW = Math.max(tmpW, sizes[i][0]);
            tmpH = Math.max(tmpH, sizes[i][1]);
        }
        
        return tmpW*tmpH;
    }
}

 

 

처음에는 사이즈를 하나씩 만들고 비교해야하나 생각했지만 비효율적이라서 다른 방식으로 접근했다.

가로든 세로든 어쨋든 들어가기만 하면 되니 긴 변을 가로 혹은 세로에 몰아넣고

(나는 가로에 몰아넣었다.)

가장 큰 것들 중에서 큰 변과(가로), 가장 작은 것들 중에서 큰 변(세로)를 고르면 된다.