[프로그래머스/Java] 최소직사각형

Moon·2022년 11월 5일
0
post-thumbnail

🙂 문제

Level1 : 최소직사각형


💡풀이

완전탐색 문제이다.
명함을 수납할 수 있는 가장 작은 지갑의 크기를 구해야 한다. 가로세로가 주어지는데 문제 설명에서 주어진 예시처럼 30*70인 명함을 가로로 눕히면 가로가 70, 세로가 30이 되기 때문에 가장 긴 세로 길이가 50이 된다. 가장 긴 가로 길이는 80, 세로 길이는 50이 되므로 조건에 맞는 가장 작은 지갑 사이즈는 4000이다.

  • 처음에는 가로와 세로를 바꿀 수 있기 때문에 가로세로 중 큰 값과 작은 값을 한 쪽으로 몰아 설정해줄 수 있다. Math.max(가로, 세로)Math.min(가로,세로)를 사용해 둘 중에 큰 값을 가로, 작은 값을 세로로 설정했다.
class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;

        // 가로는 긴거 세로는 짧은 거로 설정해주기 (하나에 몰아주기) 
        int max_w = 0; 
        int max_h = 0;
        
        for(int i = 0; i < sizes.length; i++) {
            int w = Math.max(sizes[i][0], sizes[i][1]);
            int h = Math.min(sizes[i][0], sizes[i][1]);
            max_w = Math.max(max_w, v);
            max_h = Math.max(max_h, h);
        }
        answer = max_w * max_h;
        return answer;
    }
}
profile
매일 성장하는 개발자 되기😊

0개의 댓글