LeetCode - 1323. Maximum 69 Number

henu·2023년 9월 7일
0

LeetCode

목록 보기
72/186

Solution

var maximum69Number  = function(num) {
    const arr = [...String(num)];

    for(let i=0; i<arr.length; i++) {
        if(arr[i] === '6') {
            arr[i] = '9';
            return Number(arr.join(''))
        }
    }

    return num;
};

Explanation

이 문제의 유형은 엄밀히 말하면 Greedy Algorithm에 관한 문제이다.
왜냐하면 단 하나의 숫자만 바꿀때 최댓값을 얻어야 하는데 그러기 위해서는 가장 높은 자리의 숫자를 바꿔야한다. 즉, 가장 높은 자리의 숫자를 바꾸는 것(6을 9로)이 최적의 해답이 되는 것이다.
그래서 각 자릿수를 순회하기 위해 배열로 전환한 후 6일 경우 9로 바꾸고 바로 리턴해주면 된다.

Other

return +String(num).replace('6', '9')

replace 메소드를 사용하면 아주 간단하게 6을 9로 바꿀 수 있다.

0개의 댓글