Notice
Recent Posts
Recent Comments
Link
ยซ   2024/09   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Lennon FE

[๋ฐฑ์ค€ 11057๋ฒˆ] ์˜ค๋ฅด๋ง‰ ์ˆ˜ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs) ๋ณธ๋ฌธ

๐Ÿ”ฅ Algorithm/Baekjoon

[๋ฐฑ์ค€ 11057๋ฒˆ] ์˜ค๋ฅด๋ง‰ ์ˆ˜ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs)

Lennon 2022. 3. 18. 20:12
728x90
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/11057

 

11057๋ฒˆ: ์˜ค๋ฅด๋ง‰ ์ˆ˜

์˜ค๋ฅด๋ง‰ ์ˆ˜๋Š” ์ˆ˜์˜ ์ž๋ฆฌ๊ฐ€ ์˜ค๋ฆ„์ฐจ์ˆœ์„ ์ด๋ฃจ๋Š” ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ์ด๋•Œ, ์ธ์ ‘ํ•œ ์ˆ˜๊ฐ€ ๊ฐ™์•„๋„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์นœ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2234์™€ 3678, 11119๋Š” ์˜ค๋ฅด๋ง‰ ์ˆ˜์ด์ง€๋งŒ, 2232, 3676, 91111์€ ์˜ค๋ฅด๋ง‰ ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ˆ˜

www.acmicpc.net

const { off } = require('process');
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input;

rl.on('line', function (line) {
  input = +line;
  rl.close();
}).on('close', function () {
  const dp = Array.from(Array(input + 1), () => new Array());

  dp[1] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
  dp[2] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

  for (let i = 3; i <= input; i++) {
    for (let j = 0; j < dp[i - 1].length; j++) {
      const value = [...dp[i - 1]];

      dp[i][j] = value.slice(0, j + 1).reduce((acc, cur) => acc + cur) % 10007;
    }
  }

  console.log(dp[input].reduce((acc, cur) => acc + cur) % 10007);
});

์ „ํ˜•์ ์ธ DP๋ฌธ์ œ์ด๋‹ค. ์‰ฌ์šด DP๋ฌธ์ œ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์šฉ๋ฒ•์ธ ๊ฒƒ ๊ฐ™๋‹ค.

 

N                    
1 1 1 1 1 1 1 1 1 1 1
2 1 2 3 4 5 6 7 8 9 10
3 1 3 6 10 15 21 28 36 45 55
4 1 4 10 20 35 56 84 120 165 220

N์€ ๊ทธ๋ƒฅ ์œ— ๋ถ€๋ถ„์˜ index๋งŒํผ ๋”ํ•œ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

ex) N์ด 4์ธ ๊ฒฝ์šฐ์—์„œ 3๋ฒˆ์งธ ์ธ๋ฑ์Šค์ธ 20์€ N์ด i-1์ธ 3์—์„œ 1+3+6+10 ํ•œ ๊ฒฐ๊ณผ์™€ ๊ฐ™์Œ! 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ DP๋ฌธ์ œ๋ฅผ ๋ดค์„ ๋•Œ ๋ˆ„์ ๋˜๋Š” ๋Š๋‚Œ์ด ๋“ ๋‹ค๋ฉด ์œ„์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ์ง€ ํ™•์ธํ•ด๋ณด์ž

728x90
๋ฐ˜์‘ํ˜•
Comments