
😎풀이
n번째 자릿수가 속하는 범위를 우선적으로 추림
1-1. 1~9의 경우 9개의 숫자가 한 자릿수로 총 9개의 자리를 차지함
1-2. 10~99의 경우 90개의 숫자가 두 자릿수로 총 2 * 90 총 180개의 자리를 차지함
1-3. ...
- 최종적으로 N의 범위인가를 판단한 후, 특정 번째의 숫자를 문자열 형태로 변환하여 자릿수 반환
function findNthDigit(n: number): number {
let len = 1
let start = 1
let rangeCount = 9
while(n > len * rangeCount) {
n -= len * rangeCount
len++
start *= 10
rangeCount *= 10
}
const target = start + Math.floor((n - 1) / len)
const strTarget = String(target)
const digit = strTarget[(n - 1) % len]
return Number(digit)
};