문제 카테고리가 완전탐색이기에 완전탐색법을 쓸까 고민하였는데, 재귀라던지 마땅한 방법이 생각나지도 않을 뿐더러, 적용하는 것보다 더 좋은 방법이 생각나서 다른방법을 사용하였다.
가장 큰 숫자와, 짝 지어진 두 개의 수들 중 작은 숫자들 중에서 가장 큰 숫자를 뽑는 것을 해결책이라고 생각하였다.
결과는 100점
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int[] answerarr = new int[2];
int max=0;
for(int i=0; i<sizes.length; i++){
for(int j=0; j<sizes[0].length; j++){
if(sizes[i][j]>max){
max = sizes[i][j];
}
}
}
// 2차원배열에서 두 개 중 하나 큰 숫자는 사용X > MAX값이 커버 가능하니깐
// ex1) 50, 30, 30, 40남음 거기서 가장 큰 걸 사용 > 50
// ex2) 7, 3, 8, 7, 5 > 8
// ex3) 4, 6, 6, 7, 7 > 7사용
// 모든 예시가 맞는다.
//60 50 arr[0][0] arr[0][1]
//30 70 arr[1][0] arr[1][1]
//60 30 arr[2][0] arr[2][1]
//80 40 arr[3][0] arr[3][1]
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0; i<sizes.length; i++){
for(int j=0; j<1; j++){
if(sizes[i][j]>sizes[i][j+1]){
list.add(sizes[i][j+1]);
}
else{
list.add(sizes[i][j]);
}
}
}
//ArrayList안에 50 30 30 40들어가있음
int sm = Collections.max(list);
answer = max*sm;
return answer;
}
}
'코딩테스트 연습(with java) > 프로그래머스' 카테고리의 다른 글
프로그래머스<올바른 괄호>-2차-3차(수정완료22.09.16) (0) | 2022.09.12 |
---|---|
프로그래머스<올바른 괄호> (0) | 2022.09.11 |
프로그래머스<최소직사각형> - 완전 탐색 공부 후 수정예정 (0) | 2022.09.05 |
JAVA(2022.08.20)-최소 직사각형 (0) | 2022.08.20 |
프로그래머스<가장 큰 수> (0) | 2022.08.18 |