[LeetCode] 738. Monotone Increasing Digits

Chobby·2026년 7월 29일

LeetCode

목록 보기
1119/1126

😎풀이

  1. 각 자릿수 분리
  2. 뒷자리부터 앞자리와 비교하여 오름차순이 깨지는 지점 체크
    2-1. 해당 이전 지점의 수를 1 내리고 이후 숫자는 모두 9로 채우는것이 가장 큰 수
  3. 확인된 지점부터 이후 자릿수는 모두 9로 채워 가장 큰 수 생성
  4. 정수형태로 변환하여 반환
function monotoneIncreasingDigits(n: number): number {
    const digits = [...String(n)].map(Number)
    const len = digits.length
    let afterNineIdx = len
    for(let i = len - 1; i > 0; i--) {
        if(digits[i - 1] > digits[i]) {
            digits[i - 1]--
            afterNineIdx = i
        }
    }
    for(let i = afterNineIdx; i < len; i++) {
        digits[i] = 9
    }
    return Number(digits.join(''))
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글