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;
};
이 문제의 유형은 엄밀히 말하면 Greedy Algorithm에 관한 문제이다.
왜냐하면 단 하나의 숫자만 바꿀때 최댓값을 얻어야 하는데 그러기 위해서는 가장 높은 자리의 숫자를 바꿔야한다. 즉, 가장 높은 자리의 숫자를 바꾸는 것(6을 9로)이 최적의 해답이 되는 것이다.
그래서 각 자릿수를 순회하기 위해 배열로 전환한 후 6일 경우 9로 바꾸고 바로 리턴해주면 된다.
return +String(num).replace('6', '9')
replace 메소드를 사용하면 아주 간단하게 6을 9로 바꿀 수 있다.