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

Terror·2024년 9월 21일
0

풀이

import java.util.Arrays;

class Solution {
    public int solution(int[][] sizes) {
        int[] maxRow = new int[1];
        int[] maxCol = new int[1];

        Arrays.stream(sizes).forEach(size -> {
            int row = size[0];
            int col = size[1];
            if (row < col) {
                row = size[1];
                col = size[0];
            }
            
            maxRow[0] = Math.max(maxRow[0],row);
            maxCol[0] = Math.max(maxCol[0],col);
        });
        return maxRow[0] * maxCol[0];
    }
}

깨달은점

  1. 이 문제의 핵심은 가로 길이,세로 길이를 일관되게 정렬한후에, 비교해야한다
  2. 여기서의 경우 가로에는 가장 긴 값들만, 세로에는 가장 작은값들만 들어오게 정렬시켰는데
  3. 이 경우적어도, 가로의 길이가 세로의길이보다 낮을일은없다, 같을일은 있어도,
  4. 그렇게 정렬시킨후, max값에 가로,세로중에 가장 큰값을 대입시키고
  5. 결과를 return 한다

주소

https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=java

profile
테러대응전문가

0개의 댓글