[LeetCode] 357. Count Numbers with Unique Digits

Chobby·2025년 3월 26일
1

LeetCode

목록 보기
311/427

😎풀이

  1. n이 0인 경우 0 하나만 유니크
  2. n이 1 이상일 경우
    2-1. 각 자리의 맨 앞 자리는 1~9까지 9개 가능
    2-2. 각 자리의 두번째 자리는 0~9까지 중 맨 앞 자리를 제외한 9개 가능
    2-3. 그 이후 N번째 자리는 9 - (n - 2)개가 가능하며 그 이유는 범위가 0~9 10개 이며 첫번째와 두번째 자리를 제외했기 때문
    2-4. n의 자리가 아닌 0 <= n <= 8 자리에서의 고유하지 않은 숫자 범위이므로 n번째 자리에서의 합계를 모두 더한 값 반환
function countNumbersWithUniqueDigits(n: number): number {
    if(n === 0) return 1
    let count = 1 // 0
    let available = 9 // 1 ~ 9
    let unique = 9 // 1 ~ 9
    for(let i = 1; i <= n; i++) {
        count += available
        available *= unique
        unique--
    }
    return count
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글