본문 바로가기
Coding Test/JavaScript

[Javascript] (프로그래머스) 최솟값 구하기 (level 2)

by Chaedie 2022. 9. 27.
728x90

[Javascript] (프로그래머스) 최솟값 구하기 (level 2)

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

function solution(A,B){
    A.sort((x,y) => y - x);
    B.sort((x,y) => x - y);
    let minMultiple = 0;
    A.forEach((a, i) => minMultiple += A[i] * B[i]); 

    return minMultiple
}
  • 어떻게 해야 최솟값이 나올지 모르겠어서 설마 모든 경우의 수 다 돌리는건가? 생각을 했습니다.
  • 역시나 수학적 해결방법이 있었습니다. ㅎㅎ 부족한 모습이 아쉽지만 하나씩 알아가는거겠죠? ㅎㅎ
    • 최솟값과 최댓값을 곱하는 식으로 해서 곱해지는 숫자의 평균이 가장 낮은 것이 결과값이 가장 적게 나온다고 하네요.
    • 그래서 A배열과 B배열을 다른 순서로 소팅하고, 각각 곱해서 더해줬습니다.

다른 사람 풀이 참고한 풀이

function solution(A,B){
    A.sort((x,y) => y - x);
    B.sort((x,y) => x - y);

    return A.reduce((acc, _, i) => acc += A[i] * B[i], 0)    
}

배운 점, 느낀 점

  • Reduce를 배열 합계 구할 때만 써보고, 언젠가 공부해야지… 했는데 드디어 다시 써봤네요.. ㅎㅎ
  • 비슷하게 사용해서 조금 아쉽지만,,, 이렇게도 쓸 수 있구나 정도는 경험해서 좋았습니다!

댓글