[프로그래머스] 최솟값 만들기 (자바스크립트)

드엔트론프·2023년 1월 27일
0

알고리즘

목록 보기
3/5

정답

function solution(A,B){
    var answer = 0;
    const a = A.sort((a,b) => a - b)
    const b = B.sort((a,b) => b - a)

    for(let i = 0; i < A.length; i++){
      answer += a[i] * b[i]
    }
    return answer;
}

Reduce 사용한 다른 사람 풀이

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

오답

  • 시간 초과했다 .
function solution(A,B){
    var answer = 0;
    const a = [...A];
    const b = [...B];
    let maxA = 0;
    let minB = 0;
    for(let i = 0; i < A.length; i++){
        if(a.length === 1) {
            maxA = Number(a)
            minB = Number(b)
            answer += maxA * minB
        } else{
        maxA = Math.max(...a)
        minB = Math.min(...b)
        answer += maxA * minB
            }
        a.splice(a.indexOf(maxA),1);
        b.splice(b.indexOf(minB),1);
    }
    return answer;
}

reduce같은 고차함수를 계속 사용해보는 습관을 들여보자~!

profile
왜? 를 깊게 고민하고 해결하는 사람이 되고 싶은 개발자

0개의 댓글