[๋ฐฑ์ค] 24267๋ฒ: ์๊ณ ๋ฆฌ์ฆ ์์ - ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ 6 (Node.js)
์ ๊ทผ๋ฐฉ์
์ฐ์ ๋ฌธ์ ์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
MenOfPassion(A[], n) {
sum <- 0;
for i <- 1 to n - 2
for j <- i + 1 to n - 1
for k <- j + 1 to n
sum <- sum + A[i] × A[j] × A[k]; # ์ฝ๋1
return sum;
}
--------------------------------------------------------------------
for (let i = 0; i < n - 2; i++) {
for (let j = i + 1; j < n - 1; j++) {
for (let k = j + 1; k < n; k++) {
}
}
}
3์ค for๋ฌธ์ ํตํ ๊ณ์ฐ์ ์ํ ํ์๋ฅผ ๊ตฌํด์ผํ๋๋ฐ, ๋ณ์๊ฐ i, j, k๊ฐ ์์ต๋๋ค.
์ด ๊ณผ์ ์์ i < j < k ๊ฐ ์ฑ๋ฆฝ์ ํด์ผํ๋ ์ํ์ด๋ฉด์
i๊ฐ ๊ณ ์ ์ด ๋๋ฉด, j๋ ๊ทธ๋ค์ ๊ฐ, k๋ j์ ๊ทธ ๋ค์ ๊ฐ์ ๊ณ ๋ฅด๋ ๋ฐฉ์์ ๋๋ค.
i๋ 0๋ถํฐ n - 2 ๊น์ง ๋๋๋ค.
์ฆ, n - 1๋ฒ ๋ฐ๋ณตํฉ๋๋ค.(0๋ถํฐ n-2๊น์ง๋๊น n-2+1)
j๋ i + 1๋ถํฐ n - 1๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
i = 0์ด๋ฉด, j๋ 1๋ถํฐ n - 1๊น์ง ๊ฐ์ ๊ฐ์ง๋ฉฐ n - 1๋ฒ ๋ฐ๋ณตํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ i๊ฐ ์ฆ๊ฐํ ์๋ก, j๋ ์ฆ๊ฐํ ๋งํผ ๋ฐ๋ณต์ด ์ค์ด๋ญ๋๋ค.
k๋ j + 1๋ถํฐ ์์ํด์ n๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
i = 0์ด๋ฉด j = 1์ด๊ณ , k๋ 2๋ถํฐ n๊น์ง ๋ฐ๋ณตํฉ๋๋ค.
์ฆ, n - 2๋ฒ ๋ฐ๋ณตํฉ๋๋ค.
j์ ๋ง์ฐฌ๊ฐ์ง๋ก i๊ฐ ์ปค์ง๋ฉด, j๊ฐ ์ปค์ง๋ฉด์ k๊ฐ ๋ฐ๋ณตํ๋ ํ์๋ ์ค์ด๋ค๊ฒ ๋ฉ๋๋ค.
์ข ํฉ์ ์ผ๋ก ๋ฐ์ง๋ฉด
i๊ฐ ์ ํํ ์ ์๋ ๊ฒฝ์ฐ๋ n๊ฐ์ง์ ๋๋ค. => i๋ ์ฒ์ ์ ํํ ์ ์๋ ์๊ฐ ์๋ฌด๊ฑฐ๋ ์ ํ์ด ๊ฐ๋ฅํด์ n๊ฐ์ง
j๊ฐ ์ ํํ ์ ์๋ ๊ฒฝ์ฐ๋ n - 1๊ฐ์ง์ ๋๋ค. => j๋ i๋ณด๋ค ํฐ ๊ฐ๋ง ์ ํํ ์ ์์ผ๋ฏ๋ก n-1๊ฐ์ง
k๊ฐ ์ ํํ ์ ์๋ ๊ฒฝ์ฐ๋ n - 2๊ฐ์ง ์ ๋๋ค. => k๋ i, j๋ณด๋ค ํฐ ๊ฐ๋ง ์ ํํ ์ ์์ผ๋ฏ๋ก n-2๊ฐ์ง
์ด๋ฅผ ์กฐํฉ์ผ๋ก ๋ํ๋ด๋ฉด
ํ์ด โฐ
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function (line) {
input.push(line);
}).on("close", function () {
// for (let i = 0; i < n - 2; i++) {
// for (let j = i + 1; j < n - 1; j++) {
// for (let k = j + 1; k < n; k++) {}
// }
// }
let n = BigInt(input[0]);
n = (n * (n - 1n) * (n - 2n)) / 6n;
console.log(n.toString());
console.log(3);
});
๋ฐฑ์ค 24267๋ฒ ๋งํฌ