본문 바로가기
Algorithm/프로그래머스

Level2. 프로그래머스 최솟값 만들기 - JavaScript

by 강깅꽁 2020. 7. 7.
반응형

 

접근

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;
}