첫번째 오답
import java.util.*;
class Solution {
public int solution(int[][] sizes) {
//Arrays로 합치고 sort로 정렬 중간을 인덱스해서 두개의 배열로 짼다
//큰 배열의 가장 큰 값 작은 배열의 가장 작은값
int answer = 0;
int[] arr = new int[sizes.length * sizes[0].length];
//i는 4까지 증가
for (int i = 0 ; i < sizes.length; i++){
//j는 1까지 증가
for (int j =0 ; j <sizes[i].length ; j++){
arr[( i * sizes[i].length ) + j] = sizes[i][j];
}
}
Arrays.sort(arr);
int index = arr.length / 2;
answer = arr[index -1] * arr[(index * 2)-1];
return answer;
}
}
static class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int[] width = new int[sizes.length];
int[] height = new int[sizes.length];
int tmp = 0;
int max = 0;
int max2 = 0;
//for문을 통하여 가로행을 순환하며 탐색
//가로행의 0번째 값이 1번째 값보다 작으면
//둘의 위치를 바꿔주는 for문.
for (int i = 0; i < sizes.length; i++) {
if (sizes[i][0] < sizes[i][1]) {
tmp = sizes[i][0];
sizes[i][0] = sizes[i][1];
sizes[i][1] = tmp;
}
//미리 만들어둔 배열에 가로행과 세로행을 나눠서 할당한다.
width[i] = sizes[i][0];
height[i] = sizes[i][1];
}
//나눠준 가로행과 세로열을 오름차순으로 정렬
Arrays.sort(width);
Arrays.sort(height);
//정렬된 가로행 , 세로 행의 마지막 값을 인덱스해서 가져와 곱한 후
//answer 객체에 할당한다.
answer = width[width.length - 1] * height[height.length - 1];
return answer;
}
}
'Plo Algorithm' 카테고리의 다른 글
프로그래머스 Lv1 두개 뽑아서 더하기 (0) | 2022.03.17 |
---|---|
프로그래머스Lv1 같은 숫자는 싫어 (0) | 2022.03.17 |
프로그래머스 Lv1 하샤드 수 (0) | 2022.03.16 |
프로그래머스 Lv1 콜라츠 추측 (0) | 2022.03.16 |
프로그래머스 Lv1 제일 작은 수 제거하기 (0) | 2022.03.16 |