문제

풀이코드
public int solution(int[] A, int[] B){ //최솟값 만들기
int answer = 0;
int leng = A.length-1; //배열의 index값으로 설정할 leng생성
Arrays.sort(A); //배열을 둘 다 정렬해준다.
Arrays.sort(B);
for(int i = 0; i < A.length; i++){ //A배열의 최솟값과 B배열의 최댓값을 매칭시켜서 각각 곱해서 더해준다.
answer += A[i]*B[leng--];
}
return answer;
}
이 문제는 최솟값을 만드는 것인데 간단하게 생각해서 배열을 둘 다 오름차순으로 정렬을 한 뒤,
배열 A의 제일 처음 index값과 배열 B의 제일 마지막 index값을 곱해서 A의 index값은 증가, B의 index값은 감소시켜서 각각 곱하면 최소가 될 것 같아서 그렇게 풀었다.
요즘 느끼는 건데 Level2라고 해서 다 어려운 것도 아니고 오히려 Level1이 훨씬 더 어려운 것들도 있는 것 같다.
'프로그래머스 > Level 2' 카테고리의 다른 글
| [프로그래머스][Level2][Java] 땅따먹기 (0) | 2022.03.10 |
|---|---|
| [프로그래머스][Level2][Java] 숫자의 표현 (0) | 2022.03.08 |
| [프로그래머스][Level2][Java] 피보나치 수 (0) | 2022.03.07 |
| [프로그래머스][Level2][Java] 행렬의 곱셈 (0) | 2022.03.07 |
| [프로그래머스][Level2][Java] JadenCase 문자열 만들기 (0) | 2022.03.06 |