# [Algorithm/JS] ๋ฐฑ์ค 1026๋ฒ ๋ณด๋ฌผ
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
์๋ ์์ ์ ์ํ์ด ํญ์ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ์๋ ๋๋ผ๊ฐ ์์๋ค. ์ด ๋๋ผ์ ๊ตญ์ ๊น์ง๋ฏผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ด๊ณ ํฐ ์๊ธ์ ๊ฑธ์๋ค.
๊ธธ์ด๊ฐ N์ธ ์ ์ ๋ฐฐ์ด A์ B๊ฐ ์๋ค. ๋ค์๊ณผ ๊ฐ์ด ํจ์ S๋ฅผ ์ ์ํ์.
S = A[0] ร B[0] + ... + A[N-1] ร B[N-1]
S์ ๊ฐ์ ๊ฐ์ฅ ์๊ฒ ๋ง๋ค๊ธฐ ์ํด A์ ์๋ฅผ ์ฌ๋ฐฐ์ดํ์. ๋จ, B์ ์๋ ์๋ ์ฌ๋ฐฐ์ดํ๋ฉด ์ ๋๋ค.
S์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
# Input
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ A์ ์๋ N๊ฐ์ ์๊ฐ ์์๋๋ก ์ฃผ์ด์ง๊ณ , ์ ์งธ ์ค์๋ B์ ์๋ ์๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๊ณ , A์ B์ ๊ฐ ์์๋ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ด ์๋ ์ ์์ด๋ค.
# Output
์ฒซ์งธ ์ค์ S์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
# Example
# Input 1
5
1 1 1 6 0
2 7 8 3 1
2
3
# Output 1
18
# Input 2
3
1 1 3
10 30 20
2
3
# Output 2
80
# Solution
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt';
let [N, A, B] = fs.readFileSync(filePath).toString().trim().split('\n');
let sum = 0;
N = Number(N);
A = A.split(' ')
.map(Number)
.sort((a, b) => a - b);
B = B.split(' ')
.map(Number)
.sort((a, b) => b - a);
for (let i = 0; i < N; i++) {
sum += A[i] * B[i];
}
console.log(sum);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
์๊ณ ๋ฆฌ์ฆ: ๊ทธ๋ฆฌ๋
๋ฐฐ์ด A ์ ๋ฐฐ์ด B์ ๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ณฑํ ๋ ๊ฐ์ฅ ์์ ์๊ฐ ๋์ฌ ์ ์๋๋ก ์ ๋ ฌํด์ค๋ค.
ํ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์, ํ ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ฃผ๋ฉด ๊ณฑํ์ ๋ ๊ฐ์ฅ ์์ ์๊ฐ ๋์จ๋ค.
์ ๋ ฌ ํ ๊ฐ ์ธ๋ฑ์ค ๊ฐ์ ๊ณฑ์ ์ ์ด ํฉ์ sum ๋ณ์์ ๋์ ์ฐ์ฐ์(+=)๋ฅผ ์ฌ์ฉํด ์ ์ฅํ๋ค.