반응형
접근
A에서 가장 작은 값 B에서 가장 큰 값을 곱하면 최솟값이 만들어진다.
따라서 A를 오름차순으로 정렬 ex) [1,3,5,6,7], B를 내림차순으로 정렬 ex) [9,5,3,2,1]
각 배열에서 원소는 한번만 사용하니까 같은 인덱스끼리 곱하고 이전 값과 더하면서 누적하면
해당 문제의 최솟값을 구할 수 있다.
function solution(A,B){
var answer = 0;
// 오름차순
A.sort((a,b)=>a-b);
//내림차순
B.sort((a,b)=>b-a);
// 같은 인덱스의 값 끼리 곱하고 이전 값과 더하여 누적
answer = A.reduce((acc,n,idx)=>{
return acc += n*B[idx];
},0);
return answer;
}