A와 B의 원소를 하나씩 뽑아 곱하고 더한값중 최솟값이 되는 경우를 찾는것이다.
지난번에도 이번에도 역시 똑같이 생각했다. A에선 가장 작은 수 * B에선 가장 큰 수를 계산해준다.
ㅇ 풀이
public int solution(int[] a, int[] b){
Arrays.sort(a);
Arrays.sort(b);
int answer = 0;
for(int i = 0; i < a.length; i++) {
answer += a[i] * b[a.length-i-1];
}
return answer;
}
a와 b둘다 오름차순으로 정렬해준다.
그리고 a의 가장 작은수와 b의 가장 큰수를 곱해주고 누적시킨다.
끝.
'Java > 알고리즘' 카테고리의 다른 글
이진 변환 반복하기 (0) | 2024.02.20 |
---|---|
올바른괄호 (0) | 2024.02.14 |
JadenCase 문자열 (1) | 2024.02.08 |
다시 lv2로 (0) | 2024.02.07 |
최대공약수와 최소공배수 (1) | 2024.02.06 |