본문 바로가기

CS ﹒ Algorithm/Programmers

프로그래머스 문제풀이 (8) 최소직사각형

 

 

이걸 못 풀어서 2시간 날린게 허망할만큼 쉬운 문제다.

잘 모르겠으면 표에서 1번 예시대로 가로 세로 길이 위치를 바꿔놓고 표를 뚫어지게 보자.

그러면 정답이 나온다.

정답은 아래에.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그냥 한 쪽은 큰 수로만 가득 채우고, 한 쪽은 제일 작은 수로만 가득 채운 뒤 그 중 최대값을 곱하면 가장 작은 크기가 나온다.

 

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
    public int solution(int[][] sizes) {
        int min = 0;
        int max = 0;
        
        int maxMin = 0;
        int maxMax = 0;
        
        for (int i=0; i<sizes.length; i++) {
            max = Math.max(sizes[i][0], sizes[i][1]);
            min = Math.min(sizes[i][0], sizes[i][1]);
            
            maxMin = Math.max(maxMin, min);
            maxMax = Math.max(maxMax, max);
        }
        
        return maxMin * maxMax;
    }
}
cs

 

허무하다..