같은 길이의 배열을 두개 주고 같은 인덱스끼리의 곱의 총합을 비교,
가장 작은 총합이 되도록 두 배열을 바꿀 수 있다면
만들 수 있는 최소의 총합을 구하는 문제이다
가장 큰 수와 가장 작은 수끼리 곱하고 그걸 더하면 되는 문제이다
두 배열 중 하나는 오름차순, 다른 하나는 내림차순으로 정렬 하여 인덱스별로 곱해주면 되는 문제이다
https://www.acmicpc.net/problem/1026
let input = [];
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout,
});
readline.on("line", (line) => {
input.push(line);
});
readline.on("close", () => {
solution(input);
process.exit();
});
const solution = (inp) => {
let n = Number(inp[0]);
let A = inp[1].split(" ").map((el) => Number(el));
let B = inp[2].split(" ").map((el) => Number(el));
let s = 0;
A.sort((a, b) => a - b);
B.sort((a, b) => b - a);
for (let i = 0; i < n; i++) {
s += A[i] * B[i];
}
console.log(s);
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 1476/c++] 날짜 계산 (0) | 2022.08.26 |
---|---|
[백준 11441/javascript] 합 구하기 (0) | 2022.08.25 |
[백준 15654/javascript] N과 M (5) (0) | 2022.08.23 |
[백준 13413/javascript] 오셀로 재배치 (0) | 2022.08.22 |
[백준 17413/javascript] 단어 뒤집기 2 (0) | 2022.08.21 |
댓글