문제 링크
Note
두 배열 인자의 곱의 합이 최소가 되게 하기 위해서는 곱이 최소가 되게 하기 위해
한 배열에서는 가장 작은 수, 다른 배열에서는 가장 큰 수가 곱해지도록 해줍니다.
그러기 위해서 두 배열의 인자를 정렬하고 각 배열의 양 끝의 인자들부터 곱해주는 loop를 만들어줍니다.
for 문 안에서 각 배열의 인덱스에 사용할 두 개의 변수를 사용했습니다.
Key
sort(int[] a)
Sorts the specified array into ascending numerical order.
배열을 오름차순으로 정렬
제출한 코드
import java.util.*;
class Solution{
public int solution(int []A, int []B){
int answer = 0;
//각 배열에서 가장 큰 수와 작은 수가 곱해지도록 한다.
//A,B배열을 정렬하고 루프를 서로 반대방향으로 돌면서 곱해지도록 한다.
//곱해진 결과 값 누적하여 answer에 담는다.
Arrays.sort(A);
Arrays.sort(B);
for(int i = B.length -1, j = 0 ; i >= 0 ; i--, j++){
answer += A[j] * B[i];
}
return answer;
}
}
반응형
'코딩테스트 > Java' 카테고리의 다른 글
프로그래머스/자바 lv.1 자릿수 더하기 (0) | 2024.04.02 |
---|---|
프로그래머스/자바 lv2 전화번호 목록 - 해시, containsKey, substring() (0) | 2024.03.31 |
프로그래머스/자바 lv1 완주하지 못한 선수 - HashMap, getOrDefault(), keySet(), for-each (0) | 2024.03.31 |