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

Yujin·2025년 6월 18일

CodingTest

목록 보기
19/51

문제

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

문제풀이 방법

가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000(=80 x 50)입니다.

1. 이차원 배월의 원소 값들을 큰 것을 앞으로 배치한다
2. 가로 세로의 길이들 사이의 max값을 각각 구해 곱하여 답 return

나의 코드

import java.util.*;

class Solution {
    public int solution(int[][] sizes) {

        int maxW = 0;
        int maxH = 0;
        for(int i = 0; i < sizes.length; i++){
            int width = Math.max(sizes[i][0], sizes[i][1]);
            int height = Math.min(sizes[i][0], sizes[i][1]);
            
            maxW = Math.max(maxW, width);
            maxH = Math.max(maxH, height);
        }
        return maxW * maxH;
    }
}

0개의 댓글