📌 문제
https://programmers.co.kr/learn/courses/30/lessons/86491
📌 풀이
- 가로 세로 길이 비교해서 가로가 세로보다 크면 두 위치 값을 변경한다.
- 그리고 가로길이가 가장 긴 것을 저장, 세로 길이 또한 마찬가지로 가장 큰 값을 저장한다.
- 곱하여 리턴 코드는 간단했지만 생각할수록 점점 꼬여갔던 문제이다.
📌 코드
package programmers;
public class Pro_220523 {
// 도움 코드
public static void main(String[] args) {
int[][] arr = {{10, 7},
{12, 3},
{8, 15},
{14, 7},
{5, 15}};
System.out.println(solution(arr));
}
public static int solution(int[][] arr) { // 최소직사각형
int answer = 0;
int maxWidth = 0; // 가로
int maxHeight = 0; // 세로
for (int i = 0; i < arr.length; i++) {
int temp = 0;
for (int j = 0; j < 2; j++) {
if (arr[i][0] < arr[i][1]) { // 가로보다 세로가 더 길면 인덱스 변경
temp = arr[i][0];
arr[i][0] = arr[i][1];
arr[i][1] = temp;
}
if (maxWidth < arr[i][0]) { // 가장 큰 가로 길이
maxWidth = arr[i][0];
}
if (maxHeight < arr[i][1]) { // 가장 큰 세로 길이
maxHeight = arr[i][1];
}
}
}
answer = maxWidth * maxHeight; // 곱해서 리턴
return answer;
}
}
'Programmers' 카테고리의 다른 글
[Java] 프로그래머스 : 약수의 개수와 덧셈 (0) | 2022.05.30 |
---|---|
[Java] 프로그래머스 : 예산 (0) | 2022.05.27 |
[Java] 프로그래머스 : 부족한 금액 계산하기 (0) | 2022.05.21 |
[Java] 프로그래머스 : 같은 숫자는 싫어 (0) | 2022.05.18 |
[Java] 프로그래머스 : 문자열 내 마음대로 정렬하기 (0) | 2022.05.13 |