Dev/Programmers

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

마이캣호두 2024. 12. 23. 16:58
반응형

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

Idea

sizes[i][0]과 sizes[i][1]을 비교해서 정렬해준 후, 각각의 배열에서 max를 찾아주었다. 좋은 아이디어라고 생각했었는데 다른 사람의 풀이를 보니 너무나 깔끔하고 쉬운 풀이를 발견...! (해당 코드는 아래에 첨부함)

 

 

Code

class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        int max0 = 1;
        int max1 = 1;
        
        for (int i = 0; i < sizes.length; i++) {
            if (sizes[i][0] < sizes[i][1]) {
                int tmp = sizes[i][0];
                sizes[i][0] = sizes[i][1];
                sizes[i][1] = tmp;
            }
        }
        
        for (int i = 0; i < sizes.length; i++) {
            if (sizes[i][0] > max0) {
                max0 = sizes[i][0];
            }
            
            if (sizes[i][1] > max1) {
                max1 = sizes[i][1];
            }
        }
        
        answer = max0 * max1;
        
        return answer;
    }
}

 

 

This is ... 멋진 코드...

class Solution {
    public int solution(int[][] sizes) {
        int length = 0, 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]));
        }
        int answer = length * height;
        return answer;
    }
}
반응형