알고리즘 문제 연습
[프로그래머스, Java] 최소직사각형
codi-3
2024. 7. 30. 20:50
🔍문제

📊분석
- 명함의 두변, 가로와 세로 값은 회전하여 서로 값이 바뀔수있다.
- 모든 명함을 수납할수있는 최소의 명함 넓이를 구한다.
- 세로와 가로의 값은 2차원 배열로 입력된다
위의 조건을 바탕으로
- 가로 : 두변의 길이중 가장 높은값 (Max)
- 세로: 2차원 배열의 element 두개의 값중 가장 적은 값들 중 제일 높은 값(모든 명함을 수납하기위해)
✏️풀이
import java.util.*;
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int max_v =0;
int max_h =0;
for(int i = 0; i<sizes.length;i++){
int v = Math.max(sizes[i][0], sizes[i][1]);
int h = Math.min(sizes[i][0], sizes[i][1]);
max_v = Math.max(max_v, v);
max_h = Math.max(max_h, h);
}
answer = max_v*max_h;
return answer;
}
}
코드 자체의 난이도는 높지 않지만 문제를 이해하고 논리적으로 답을 추리는 시간이 오래걸렸던거같은 문제다. 앞을로 도형문제를 풀때 많은 도움이될꺼같다!