From 66c83d10197c116267b11ee9d84ee0dfb9ce4549 Mon Sep 17 00:00:00 2001 From: dmswl6310 Date: Tue, 15 Sep 2026 22:40:30 +0900 Subject: [PATCH] 0915 --- .../357. Count Numbers with Unique Digits.js" | 23 +++++++++++++++++++ .../70. Climbing Stairs.js" | 16 +++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 "leetcode3/\355\231\251\354\235\200\354\247\200/357. Count Numbers with Unique Digits.js" create mode 100644 "leetcode3/\355\231\251\354\235\200\354\247\200/70. Climbing Stairs.js" diff --git "a/leetcode3/\355\231\251\354\235\200\354\247\200/357. Count Numbers with Unique Digits.js" "b/leetcode3/\355\231\251\354\235\200\354\247\200/357. Count Numbers with Unique Digits.js" new file mode 100644 index 00000000..d02f17a7 --- /dev/null +++ "b/leetcode3/\355\231\251\354\235\200\354\247\200/357. Count Numbers with Unique Digits.js" @@ -0,0 +1,23 @@ +/** + * @param {number} n + * @return {number} + */ +var countNumbersWithUniqueDigits = function (n) { + // n=1 0~9 모두가능 + // n=2 0~99 두개 겹치는거 (9가지) 빼고 가능 + // n=3 0~999 세개 겹치는거(9가지)+두개 겹치는거(9가지) 빼고 가능 + // n=2일때 케이스 + 세자리수에서 겹치는거 뺀것 + const dp = Array(n + 1); + dp[0] = 1; + if (n >= 1) dp[1] = 10; + + for (let i = 2; i <= n; i++) { + dp[i] = 10 * dp[i - 1] - (n - 1) * 9; + //100~999 중 겹치는거 뺀것 + //100~199 dp[i-1]-2 + //200~299 dp[i-1] -2 + // 900~999 ... + } + + return dp[n]; +}; diff --git "a/leetcode3/\355\231\251\354\235\200\354\247\200/70. Climbing Stairs.js" "b/leetcode3/\355\231\251\354\235\200\354\247\200/70. Climbing Stairs.js" new file mode 100644 index 00000000..6b2421d1 --- /dev/null +++ "b/leetcode3/\355\231\251\354\235\200\354\247\200/70. Climbing Stairs.js" @@ -0,0 +1,16 @@ +/** + * @param {number} n + * @return {number} + */ +var climbStairs = function(n) { + const dp=Array(n+1).fill(0); + dp[0]=1; + for(let i=0;i