[PGS] 최소직사각형 - JAVA

최영환·2023년 8월 28일
0

Programmers

목록 보기
28/43

💡 문제

💬 입출력 예시

📌 풀이(소스코드)

class Solution {
    public int solution(int[][] sizes) {
        int[] answer = new int[2];
        for (int[] size: sizes) {
            // 가로, 세로 중 큰 것을 가로로, 짧은 것을 세로로 설정
            int w = Math.max(size[0], size[1]);
            int h = Math.min(size[0], size[1]);
            
            // 현재까지의 가로의 최댓값, 세로의 최댓값을 구함
            answer[0] = Math.max(answer[0], w);
            answer[1] = Math.max(answer[1], h);
        }
        // 가로의 최댓값 * 세로의 최댓값이 정답
        return answer[0] * answer[1];
    }
}

📄 해설

접근

  • 문제의 설명에서 명함을 회전시키라고 하고, 완전탐색이므로 열심히 회전을 시키려하면 풀 수 없는 문제
  • 각 명함들에서 각각의 가로와 세로 길이 중 큰 것을 가로로, 짧은 것을 세로로 설정한다. (회전한 것과 같은 결과)
  • 각 명함들의 가로, 세로 길이 중 최댓값들을 찾고, 이를 곱하면 원하는 답이 얻어짐

과정

  • 접근과 과정이 동일하므로 생략하도록 하겠음
profile
조금 느릴게요~

0개의 댓글