프로그래머스 - 최소직사각형

이형석·2024년 6월 11일

알고리즘 Phase1

목록 보기
39/59

1레벨 문제지만 내가 풀어본 완전탐색문제가 n과m 시리즈랑 NQueen문제밖에 없어서 풀이를 떠올리기 상당히 어려웠다.

별 짓을 다 해봤는데 결국 다른 블로그의 풀이를 참고했다.

풀이
1. 어렵게 생각할 필요없이, 가로길이의 최댓값과 세로길이의 최댓값을 구하면 된다.
2. 가로길이는 직사각형 두 변중 더 긴 쪽, 세로길이는 더 짧은 쪽으로 한다.

import java.util.*;
class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        int maxW = Math.max(sizes[0][0], sizes[0][1]);
        int maxH = Math.min(sizes[0][0], sizes[0][1]);
        for(int i = 1; i < sizes.length; i++){
            int w = Math.max(sizes[i][0], sizes[i][1]);
            int h = Math.min(sizes[i][0], sizes[i][1]);        
            if(maxW < w){
                maxW = w;
            }
            if(maxH < h){
                maxH = h;
            }
        }
        return maxW * maxH;
    }
}
profile
금융IT 개발자

0개의 댓글