30min
import java.util.Arrays;
/**
* 완전탐색
* 최소직사각형
*/
public class Solution {
public static int solution(int[][] sizes) {
int N = sizes.length;
int[] width = new int[N];
int[] height = new int[N];
int maxWidth = 0;
int maxHeight = 0;
for (int i = 0; i < N; i++) {
width[i] = sizes[i][0];
if (maxWidth < width[i]) {
maxWidth = width[i];
}
height[i] = sizes[i][1];
if (maxHeight < height[i]) {
maxHeight = height[i];
}
}
if (maxHeight < maxWidth) {
for (int i = 0; i < N; i++) {
if (width[i] != maxWidth && height[i] > width[i]) {
height[i] = width[i];
}
}
Arrays.sort(height);
maxHeight = height[N - 1];
} else {
for (int i = 0; i < N; i++) {
if (height[i] != maxHeight && width[i] > height[i]) {
width[i] = height[i];
}
}
Arrays.sort(width);
maxWidth = width[N - 1];
}
int answer = maxHeight * maxWidth;
return answer;
}
}
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;
}
}
발상은 비슷한 것 같은데 굉장히 간단하게 푸셨다. 어떻게 이렇게 풀 수 있는거지? ^.T
일단 나의 패착은 Math.max() 함수를 활용하지 않은 게 아닐까 싶다.