이 문제는 오름차순과 내림차순을 이용한 그리디 알고리즘으로 처음 풀어봤는데, 간단히만 이야기 하자면 각 배열들을 각각 오름차순과 내림차순 시킨 후 반복문에서 해당 배열의 같은 위치의 값들을 곱하면 최소값을 구할 수 있는 알고리즘입니다.
참고로 두 배열을 같은 차순으로 정렬할 경우 최대값이 구해지기도 합니다.
function solution(A, B) { var answer = 0; // A 배열은 오름차순, B 배열은 내림차순으로 정렬 A.sort((a, b) => a - b); // A는 오름 차순, B.sort((a, b) => b - a); // B는 내림 차순으로 정렬하여 for(let i = 0 ; i < A.length ; i++){ answer += A[i] * B[i]; // for문을 돌리고 각각의 곲한 값을 answer에 누적 증가 시켜줍니다. } return answer; }