noEndingZeros.js (8kyu 68)
Codewars 알고리즘 풀이
Problem
- Get rid of numbers ending with zeros.
- 0으로 끝나는 숫자들을 제거한다.
Solution 01
function noEndingZeros(n) {
while (n !== 0 && n % 10 === 0) {
n /= 10;
}
return n;
}
noEndingZeros(0); // 0
noEndingZeros(19880); // 1988
noEndingZeros(198800); // 1988
noEndingZeros(1988000); // 1988
Solution 02
function noEndingZeros(n) {
return Number(n.toString().replace(/0+$/g, ''));
}
noEndingZeros(0); // 0
noEndingZeros(19880); // 1988
noEndingZeros(198800); // 1988
noEndingZeros(1988000); // 1988
Number()
메소드객체의 인수를 숫자로 변환한다.
숫자를 변환할 수 없으면 NaN을 반환한다.
toString()
메소드숫자를 문자열로 변환한다.
Solution 03
function noEndingZeros(n) {
return +`${n}`.replace(/0+$/g, '');
}
noEndingZeros(0); // 0
noEndingZeros(19880); // 1988
noEndingZeros(198800); // 1988
noEndingZeros(1988000); // 1988
정규표현식 (RegExp)
replace()
: 대응되는 문자열을 찾아 다른 문자열로 치환한다.
+
: 1회 이상 연속으로 반복되는 부분에 대응
$
: 입력의 끝 부분에 대응
g
: 전역 검색