Programmers_12941 최솟값 만들기
- TOC {:toc}
이 글은 프로그래머스의 12941번 문제를 JavaScript로 풀이한 것을 모아놓은 글입니다.
일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.
2023.11.13
정확성 테스트
테스트 | 통과 | 시간 | 메모리 |
---|---|---|---|
테스트 1 | 통과 | 0.05ms | 33.5MB |
테스트 2 | 통과 | 0.21ms | 33.4MB |
테스트 3 | 통과 | 0.18ms | 33.6MB |
테스트 4 | 통과 | 0.18ms | 33.5MB |
테스트 5 | 통과 | 0.18ms | 33.6MB |
테스트 6 | 통과 | 0.26ms | 33.5MB |
테스트 7 | 통과 | 0.17ms | 33.5MB |
테스트 8 | 통과 | 0.19ms | 33.5MB |
테스트 9 | 통과 | 0.18ms | 33.5MB |
테스트 10 | 통과 | 0.18ms | 33.5MB |
테스트 11 | 통과 | 0.15ms | 33.6MB |
테스트 12 | 통과 | 0.15ms | 33.5MB |
테스트 13 | 통과 | 0.18ms | 33.4MB |
테스트 14 | 통과 | 0.15ms | 33.6MB |
테스트 15 | 통과 | 0.15ms | 33.4MB |
테스트 16 | 통과 | 0.15ms | 33.6MB |
효율성 테스트
테스트 | 통과 | 시간 | 메모리 |
---|---|---|---|
테스트 1 | 통과 | 0.73ms | 33.4MB |
테스트 2 | 통과 | 0.77ms | 33.4MB |
테스트 3 | 통과 | 0.67ms | 33.5MB |
테스트 4 | 통과 | 0.66ms | 33.5MB |
function solution(A, B) {
A.sort((a, b) => a - b);
B.sort((a, b) => b - a);
return A.reduce((acc, curr, idx) => acc + curr * B[idx], 0);
}
아이디어 & 풀이
두 배열의 수를 곱한 뒤 더했을 때 값이 최소가 되려면 가장 큰 수와 가장 작은 수를 곱해 더해나가야 한다.
- 주어진 두 배열을 하나는 오름차순 다른 하나는 내림차순 정리한 뒤 첫 항부터 순회하면서 곱한 값을 더해 반환한다.
피드백
- 막연히 생각했을 때 작은 수와 작은 수를 곱해서 작아지는 값보다 큰 수와 큰 수를 곱해서 커지는 값이 더 크기 떄문에 큰 수와 작은 수를 곱해서 더해야 한다고 생각했는데 왜 이게 항상 성립하는지는 잘 모르겠다.
-
ps-js