๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

[๋ฐฑ์ค€] 24267๋ฒˆ: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„ 6 (Node.js)

JaeBBang 2024. 9. 11. 15:24

 

 

 

์ ‘๊ทผ๋ฐฉ์‹

์šฐ์„  ๋ฌธ์ œ์˜ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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๋ฒˆ ๋งํฌ

๐Ÿ‘‰ https://www.acmicpc.net/problem/24267