숫자를 하나 입력받아, 그 수의 첫 번째 자릿수(가장 앞자리)와 마지막 자릿수만으로 새로운 수를 구성한 뒤, 원래 수에서 이렇게 만들어진 수를 빼 그 차이를 반환하는 JavaScript 함수를 작성해야 합니다.
예를 들어 입력값이 34567이라면,
모서리 자릿수로 만든 수는 다음과 같습니다 −
37
따라서 최종 출력 결과는 다음과 같습니다 −
34530
예제
다음은 전체 코드입니다 −
const num = 34567;
const cornerDifference = num => {
let temp = Math.abs(num);
let corner = temp % 10;
if(temp < 100){
corner = temp;
}else{
while(temp >= 10){
temp = Math.floor(temp / 10);
};
corner = (temp*10) + corner;
};
return num - corner;
};
console.log(cornerDifference(num));
출력
콘솔에 출력되는 결과는 다음과 같습니다 −
34530
코드 동작 원리
위 코드가 어떻게 동작하는지 단계별로 살펴보겠습니다.
1. 마지막 자릿수 추출
Math.abs(num)으로 절댓값을 먼저 구해 음수 입력에도 대비합니다. 이후 temp % 10 연산을 통해 가장 마지막 자릿수를 얻습니다.
2. 두 자리 이하의 수 처리
입력된 수가 100보다 작다면, 즉 한 자리 또는 두 자리 수라면 그 수 자체가 곧 모서리 수가 됩니다. 따라서 이 경우 차이는 항상 0입니다.
3. 첫 번째 자릿수 추출
세 자리 이상의 수라면 while 루프를 돌며 10으로 나누고 Math.floor로 소수점 이하를 버리는 과정을 반복하여, 가장 앞자리 숫자만 남길 때까지 자릿수를 줄여 나갑니다.
4. 모서리 수 구성 및 차이 계산
첫 번째 자릿수에 10을 곱한 값에 마지막 자릿수를 더해 두 자리 모서리 수를 완성하고, 원래 수에서 이 값을 빼 최종 결과를 반환합니다. 예제의 경우 34567 − 37 = 34530이 됩니다.