문제 소개
JavaScript 함수를 작성해야 합니다. 이 함수는 문자열 형태의 숫자 하나를 유일한 인자로 받습니다.
함수의 목표는 입력받은 숫자의 뒤쪽 절반(후반부) 자릿수를 모두 0으로 변경한 결과를 반환하는 것입니다.
자릿수가 홀수인 경우에는 가운데 자릿수부터 끝까지 모두 0으로 바꿔야 합니다.
예를 들어 다음과 같습니다.
938473 → 938000
예제 코드
다음은 위 문제를 해결하는 코드입니다.
const num = '938473';
const convertHalf = (num = '') => {
let i = num.toString();
let j = Math.floor(i.length / 2);
if (j * 2 === i.length) {
return parseInt(i.slice(0, j) + '0'.repeat(j));
} else {
return parseInt(i.slice(0, j) + '0'.repeat(j + 1));
};
};
console.log(convertHalf(num));
출력 결과
938000
코드 동작 원리
Math.floor(i.length / 2)를 사용해 문자열 길이의 절반에 해당하는 값을 구합니다.- 자릿수가 짝수라면 앞부분 절반은 그대로 유지하고, 나머지 절반만큼
'0'을 반복해 이어 붙입니다. - 자릿수가 홀수라면 가운데 자릿수까지 0으로 덮기 위해
'0'을 한 개 더 붙입니다. - 마지막으로
parseInt()를 통해 문자열을 숫자로 변환한 뒤 반환합니다.
이처럼 문자열 슬라이싱과 String.prototype.repeat() 메서드를 조합하면 별도의 반복문 없이 간결하게 후반부 자릿수를 0으로 만들 수 있습니다.