프로그래머스 최소직사각형 (JAVA)

2026. 5. 22. 12:59·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

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


📌 문제 개요

여러 개의 명함이 주어질 때,
모든 명함을 수납할 수 있는 가장 작은 지갑 크기를 구하는 문제

명함은 회전 가능하므로, 가로와 세로를 자유롭게 변경할 수 있다.


📌 접근 방법

각 명함마다을 구분하여 방향을 통일했다.

  • 긴 변
  • 짧은 변

이후 구하면 모든 명함을 포함할 수 있는 최소 지갑 크기가 된다.

  • 긴 변들 중 최대값
  • 짧은 변들 중 최대값

📌 핵심 아이디어

1. 명함 회전 가능

[30, 70]
// 회전 시
[70, 30]
 

 

따라서 모든 명함의 긴 변을 한 방향으로 맞추는 것이 핵심이다.


2. Math.max / Math.min 활용

// 긴 변
Math.max(card[0], card[1])
// 짧은 변
Math.min(card[0], card[1])
 

정렬 없이도 간단하게 처리 가능하다.


3. 향상된 for문 사용

for (int[] card : sizes)
 

배열 요소를 직접 순회하여 코드 가독성을 높였다.


📌 전체 코드

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

        int length = 0;
        int height = 0;

        for (int[] card : sizes) {

            // 긴 변
            length = Math.max(length,
                    Math.max(card[0], card[1]));

            // 짧은 변
            height = Math.max(height,
                    Math.min(card[0], card[1]));
        }

        return length * height;
    }
}

📄 정리

  • 명함 회전 가능 여부가 핵심
  • 긴 변 / 짧은 변 방향 통일 필요
  • Math.max / Math.min 으로 정렬 없이 해결 가능
  • 향상된 for문으로 가독성 개선 가능
  • 최대 가로 × 최대 세로 계산 문제
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

프로그래머스 가장 가까운 같은 글자 JAVA 풀이 (해시맵, 문자열)  (0) 2026.05.24
프로그래머스 3진법 뒤집기 (JAVA)  (0) 2026.05.22
프로그램머스 이상한 문자 만들기 (JAVA)  (0) 2026.05.21
프로그래머스 삼총사 JAVA 풀이 (브루트포스, 조합, 시간복잡도)  (0) 2026.05.20
프로그래머스 최대공약수와 최소공배수 JAVA 풀이 (유클리드호제법, 시간복잡도)  (0) 2026.05.18
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 프로그래머스 가장 가까운 같은 글자 JAVA 풀이 (해시맵, 문자열)
  • 프로그래머스 3진법 뒤집기 (JAVA)
  • 프로그램머스 이상한 문자 만들기 (JAVA)
  • 프로그래머스 삼총사 JAVA 풀이 (브루트포스, 조합, 시간복잡도)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    Level2
    알고리즘
    문자열
    수학
    코딩테스트
    level1
    프로그래머스
    완전탐색
    실기
    구현
    java
    정처기
    자료구조
    백엔드개발자
    피보나치
    배열
    기출문제
    정처기실기
    자바
    시뮬레이션
    springboot
    정렬
    solved.ac
    브루트포스
    정보처리기사 실기 기출문제
    dp
    백준
    정처기오답노트
    level0
    정보처리기사
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
프로그래머스 최소직사각형 (JAVA)
상단으로

티스토리툴바