숫자를 첫 번째이자 유일한 인수로 사용하는 JavaScript 함수를 작성해야 합니다.
우리 함수의 임무는 숫자의 두 자리 사이에서 최대 한 번 스왑을 수행하고 가능한 최대 숫자를 산출하는 것입니다. 그러나 숫자가 이미 가능한 최대 숫자인 경우 숫자 자체를 반환해야 합니다.
예를 들어 -
입력 번호가 -
인 경우const num = 1625;
그러면 출력은 다음과 같아야 합니다. -
const output = 6125;
우리는 1과 6을 교환했으며 이것이 단일 교환에서 가장 많은 수를 산출하는 유일한 교환입니다.
예시
이에 대한 코드는 -
const num = 1625;
const findMaximumDigit = (num, max = 0) => {
if(!num){
return max;
};
return findMaximumDigit(Math.floor(num / 10), Math.max(max, num %10));
};
const makeOneSwap = (num = 1) => {
let i = 0;
const max = findMaximumDigit(num);
const numStr = String(num);
const numArr = numStr.split('');
const maxIndex = numStr.lastIndexOf('' + max);
while(i < maxIndex){
if(+numStr[i] < max){
let temp = numArr[i];
numArr[i] = numArr[maxIndex];
numArr[maxIndex] = temp;
break;
};
};
return +(numArr.join(''));
};
console.log(makeOneSwap(num)); 출력
콘솔의 출력은 -
6125