백준 9095 - 1,2,3 더하기 - 자바스크립트


너무 시간을 오래 끌었던 문제

이번 문제에서 규칙을 찾아내기 위해 정말 많은 시간을 보냈지만, 결국에는 구글링…

그래도 거의(?) 근접했다.

node.js 입출력을 잘 이해를 못해서 답은 맞는데… 계속 틀렸습니다

소스코드

const readline = require('readline');

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

const input = [];
rl.on('line', function (line) {
  input.push(line);
}).on('close', function () {
  // 여러줄을 입력받기 위해서는 이 부분부터 코딩
  const count = input[0];
  const dp = [0, 1, 2, 4];
  for (let j = 0; j < count; j += 1) {
    let i = 4;
    for (; i <= input[j + 1]; i++) {
      dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
    }
    console.log(dp[input[j + 1]]);
  }
  process.exit();
});

이 문제는 dp문제로 앞서 푼 문제들과 비슷하게 주어진 결과들을 배열에 저장하는 것이 중요하다

1은 1 총 1개
2는 1+1, 2 총 2개
3은 1+1+1, 2+1, 1+2, 3 총 4개
4는 1+1+1+1, 1+1+2, ... 총 7개

정수 1,2,3의 총 개수를 더하면 4의 개수가 된다.

재귀함수로 풀어내는 방법도 있는데 다시 한번 풀고 정리를 해야겠다.

페이지 이동




© 2021.01. by somedaycode

Powered by theorydb