완전탐색
최소직사각형
# 큰 것중에 가장 큰 거, 작은 것중에 가장 큰 거
def solution(sizes):
answer = 0
w = []
h = []
for i in range(len(sizes)):
w.append(max(sizes[i][0], sizes[i][1]))
h.append(min(sizes[i][0], sizes[i][1]))
return max(w) * max(h)
w = 가로, 세로 중 큰 것
h = 가로, 세로 중 작은 것
w에서 가장 큰 것 * h에서 가장 큰 것
def solution(sizes):
return max(max(x) for x in sizes) * max(min(x) for x in sizes)
한 줄로 끝내다니 ..ㅋ
import java.util.ArrayList;
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
ArrayList<Integer> widthList = new ArrayList<>();
ArrayList<Integer> heightList = new ArrayList<>();
// 각 사각형의 너비와 높이를 리스트에 저장
for(int i = 0 ; i<sizes.length; i++) {
widthList.add(Math.max(sizes[i][0], sizes[i][1]));
heightList.add(Math.min(sizes[i][0], sizes[i][1]));
}
// 최대 너비와 최대 높이를 찾기 위해 배열로 변환
int[] width = new int[widthList.size()];
for(int i = 0; i< width.length; i++) {
width[i] = widthList.get(i);
}
int[] height = new int[heightList.size()];
for(int i = 0; i< height.length; i++) {
height[i] = heightList.get(i);
}
// 최대 너비와 최대 높이 구하기
int maxWidth = Integer.MIN_VALUE;
int maxHeight = Integer.MIN_VALUE;
for (int w : width) {
if (w > maxWidth) {
maxWidth = w;
}
}
for (int h : height) {
if (h > maxHeight) {
maxHeight = h;
}
}
// 최대 너비와 최대 높이를 곱해서 넓이 계산
answer = maxWidth * maxHeight;
return answer;
}
}
이건 아닌듯 ArrayList 안쓰는 풀이로 ...
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;
}
}
for (int[] card : sizes)
이렇게 쓰는 법 익숙해져야 하는데 쉽지 않네
length랑 height를 재귀적으로 사용해서 풀었네