반응형
문제 설명
- 길이가 같고, 자연수로 이루어진 배열 A, B
- 각각의 원소를 하나씩 뽑아 두 수를 곱하는 과정을 반복하며 그 값을 누적하여 더한다
- 최종적으로는 그 값이 최소가 되도록 만드는 것이 목표
- 단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없다
- Ex) A = [1,4,2] B = [5,4,4]
- A에서 첫 번째 숫자인 1, B에서 첫 번째인 5를 더한다
- 그 값과 각 배열의 두 번째 수를 곱해 더해준다
- 마지막 세번째 수들을 곱해 더해준다
- 이 경우 최소가 되므로 29를 return 해준다
- 그 최소를 만족하는 solution 함수를 완성하시오
제한사항
- 배열 A, B의 크기 : 1,000 이하의 자연수
- 배열 A, B의 원소들의 크기 : 1,000 이하의 자연수
입출력 예시
전체 코드
function solution(A, B) {
let answer = 0;
let ascArr = [...A].sort((a, b) => {
return a - b;
});
let descArr = [...B].sort((a, b) => {
return b - a;
});
// for (let i = 0; i < ascArr.length; i++) {
// answer += ascArr[i] * descArr[i];
// }
ascArr.forEach((item, index) => {
answer += item * descArr[index];
});
return answer;
}
'Programmers' 카테고리의 다른 글
(Programmers) [Lv. 0] 피자 나눠 먹기(1) (0) | 2023.02.08 |
---|---|
(Programmers) [Lv. 0] 문자열 뒤집기 (0) | 2023.02.08 |
(Programmers) [Lv. 2] JadenCase 문자열 만들기 (0) | 2023.02.07 |
(Programmers) [Lv. 1] 가운데 글자 가져오기 (0) | 2023.02.07 |
(Programmers) [Lv. 1] 없는 숫자 더하기 (0) | 2023.02.07 |