문제

  • 0으로 끝나는 숫자들을 제거한다.

풀이 01

function noEndingZeros(n) {
  while (n !== 0 && n % 10 === 0) {
    n /= 10;
  }
  return n;
}

noEndingZeros(19880);    // 1988
noEndingZeros(198800);   // 1988
noEndingZeros(1988000);  // 1988
noEndingZeros(0);        // 0

풀이 02

function noEndingZeros(n) {
  return Number(n.toString().replace(/0+$/g, ''));
}

noEndingZeros(19880);    // 1988
noEndingZeros(198800);   // 1988
noEndingZeros(1988000);  // 1988
noEndingZeros(0);        // 0
  • Number(): 객체의 인수를 숫자로 변환한다. 숫자를 변형할 수 없으면 NaN을 반환한다.
  • toString(): 숫자를 문자열로 변환한다.

풀이 03

function noEndingZeros(n) {
  return +`${n}`.replace(/0+$/g, '');
}

noEndingZeros(19880);    // 1988
noEndingZeros(198800);   // 1988
noEndingZeros(1988000);  // 1988
noEndingZeros(0);        // 0

정규표현식 (RegExp)

  • replace(): 대응되는 문자열을 찾아 다른 문자열로 치환한다.
  • +: 1회 이상 연속으로 반복되는 부분에 대응
  • $: 입력의 끝 부분에 대응
  • g: 전역 검색