class Solution {
public int solution(int[][] sizes) {
int tmpW = 0;
int tmpH = 0;
for(int i=0; i<sizes.length; i++){
if(sizes[i][0]<sizes[i][1]){
int tmp = sizes[i][1];
sizes[i][1] = sizes[i][0];
sizes[i][0] = tmp;
}
tmpW = Math.max(tmpW, sizes[i][0]);
tmpH = Math.max(tmpH, sizes[i][1]);
}
return tmpW*tmpH;
}
}
처음에는 사이즈를 하나씩 만들고 비교해야하나 생각했지만 비효율적이라서 다른 방식으로 접근했다.
가로든 세로든 어쨋든 들어가기만 하면 되니 긴 변을 가로 혹은 세로에 몰아넣고
(나는 가로에 몰아넣었다.)
가장 큰 것들 중에서 큰 변과(가로), 가장 작은 것들 중에서 큰 변(세로)를 고르면 된다.
'알고리즘 > 완전탐색' 카테고리의 다른 글
[프로그래머스 연습문제 level_2 ] 카펫 (0) | 2024.01.18 |
---|---|
[프로그래머스 연습문제 level_2 ] 소수찾기 (0) | 2024.01.18 |
[프로그래머스 연습문제 level_1 ] 모의고사 (0) | 2024.01.18 |