최소 직사각형

이은미·2025년 10월 5일
0

✅ 문제 최소직사각형

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

🧠 문제파악

명함의 가로세로 크기가 들어 있는 sizes 배열이 주어질 때,
모든 명함을 수납할 수 있는 가장 작은 지갑 크기를 구하는 문제야.
명함은 회전이 가능하다는 점이 핵심이야.

💡 접근방법

  • 명함을 돌릴 수 있으니까, 항상 가로 ≥ 세로로 맞춰두면 돼.
  • 모든 명함을 그렇게 정리한 다음,
    • 가로의 최댓값 × 세로의 최댓값 = 최소 지갑 크기
  • 단순 반복문으로 충분히 풀 수 있음.
항목내용
시간복잡도O(n)
공간복잡도O(1)
포인트회전 고려 후 최대값 계산

🧩 문제풀이 (Java)

class Solution {
    public int solution(int[][] sizes) {
        int maxW = 0;
        int maxH = 0;
        for (int[] card : sizes) {
            int w = Math.max(card[0], card[1]);
            int h = Math.min(card[0], card[1]);
            maxW = Math.max(maxW, w);
            maxH = Math.max(maxH, h);
        }
        return maxW * maxH;
    }
}
profile
파이팅 해야지

0개의 댓글