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

[๋ฐฑ์ค€ 9095๋ฒˆ] 1, 2, 3 ๋”ํ•˜๊ธฐ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs) ๋ณธ๋ฌธ

๐Ÿ”ฅ Algorithm/Baekjoon

[๋ฐฑ์ค€ 9095๋ฒˆ] 1, 2, 3 ๋”ํ•˜๊ธฐ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs)

Lennon 2022. 3. 11. 17:51
728x90
๋ฐ˜์‘ํ˜•

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

 

9095๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

const fs = require('fs');

let [n, ...input] = fs.readFileSync('dev/stdin').toString().trim().split('\n');
input = input.map(Number);

const occation = [0];

occation[1] = 1;
occation[2] = 2;
occation[3] = 4;

for (let i = 4; i <= Math.max(...input); i++) {
  occation[i] = occation[i - 3] + occation[i - 2] + occation[i - 1];
}

input.forEach((v) => {
  console.log(occation[v]);
});

DP๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ณผ ๋•Œ ์žฌ๊ท€๋กœ ๋ง‰ ๋Œ๋ฆด ์ƒ๊ฐ๋ณด๋‹ค DP๋กœ ๋ฉ”๋ชจํ•˜๋ฉด์„œ ํ’€ ๋ฌธ์ œ์ธ์ง€ ํŒŒ์•…ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ ํ™”์‹์„ ์ƒ๊ฐํ•ด๋ณธ๋‹ค.

์œ„ ๋ฌธ์ œ๋Š” 

1์„ 1,2,3์„ ์ด์šฉํ•ด ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ : 1

2๋ฅผ 1,2,3์„ ์ด์šฉํ•ด ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ : 2

3๋ฅผ 1,2,3์„ ์ด์šฉํ•ด ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ : 4

4๋ฅผ 1,2,3์„ ์ด์šฉํ•ด ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ : 7

์ด ์•ˆ์—์„œ N์„ 1,2,3์„ ์ด์šฉํ•ด ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ : N-1, N-2, N-3์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ํ•ฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ์ ํ™”์‹์„ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋‹ค.

์™œ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š” ์ง€ ์ƒ๊ฐํ•ด๋ณด์ž.

 

1 =>

   1

  => 1๊ฐ€์ง€

2 =>

   1์—์„œ 1+1

   2

   => 2๊ฐ€์ง€

3 =>

   1์—์„œ 1+2,

   2์—์„œ 1+1+1

   2์—์„œ 2+1

   3์—์„œ 3

  => 4๊ฐ€์ง€

4 =>

   1์—์„œ 1+3

   2์—์„œ 1+1+2, 2+2

   3์—์„œ 1+1+1+1, 1+2+1, 2+1+1, 3+1

   => 7๊ฐ€์ง€

 

๊ทœ์น™์„ ๋ณด๋ฉด ์ด์ „ ์ˆซ์ž๋“ค์„ ์ฐธ๊ณ ํ•ด์„œ 1์”ฉ ๋”ํ•ด ํ•ด๋‹น ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

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