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

문제 : 최솟값 만들기

기본적인 내용

서로 같은크기의 배열이 있을때 배열마다의 값을 서로 곱하고 더했을때 최솟값 찾기

=> 그냥 서로 가장 작은 값이랑 서로 가장 큰 값을 차근차근 더한게 최솟값이 되겠지

내가 작성한 코드

function solution(A,B){
    
    let answer = 0;
    A.sort((a,b)=>a-b);
    B.sort((a,b)=>b-a);
    
    for( let i=0;i<A.length;i++)
        {
         answer=answer + A[i]*B[i];
        }
    return answer
}

문제없이 맞췄다.

다른 사람 코드

function solution(A,B){
    A.sort((a, b) => a - b)
    B.sort((a, b) => b - a)
    return A.reduce((total, val, idx) => total + val * B[idx], 0)
}

모든 배열을 돌면서 필요한 값들을 증가시키므로 reduce 함수를 이용할만 하고 필요에따라 같은 index를 사용하는 B[idx]를 통해 A[i]*B[i]val * B[idx]로 만들어준다.

좋은 웹페이지 즐겨찾기