본문 바로가기

코딩테스트

[백준] 11057 - 오르막수(javascript)

반응형

나의 풀이

2차원 배열을 사용하는데,
- 끝 번호가 어떠냐에 따라 나올 수 있는 가지 수를 저장한다.
- 길이가 길어짐에 따라 값이 변하는걸 저장한다.

2가지 경우에 따라 변하면서, 그 사이에서 규칙성이 있기에 2차원 배열로 dp를 저장해서 사용하는 것 같다.

let fs = require("fs");
let input = Number(fs.readFileSync("/dev/stdin").toString().trim());
const dp = [new Array(10).fill(1)];

for (let x = 1; x < input; x++) {
  dp[x] = [1];
  for (let y = 1; y < 10; y++) {
    dp[x][y] = (dp[x - 1][y] + dp[x][y - 1]) % 10007;
  }
}

const result = dp[input - 1].reduce((pre, cur) => pre + cur, 0);
console.log(result % 10007);

 

참고

 

[백준] 11057 오르막 수 (파이썬 Python)

https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이

animoto1.tistory.com

반응형