숫자를 첫 번째이자 유일한 인수로 사용하는 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