[프로그래머스]핸드폰 번호 가리기

jaemin·2020년 12월 4일
0

프로그래머스

목록 보기
12/18
post-thumbnail

핸드폰 번호 가리기

문제 설명

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

풀이 설계

전화번호가 11자리일 때도 있고 10자리일 때도 있지만 뒤에서부터 4자리만 남겨두는 건 두 경우 모두 마찬가지이다.
따라서 전화번호를 순회하면서 끝에서부터 4자리가 아닐 경우 * 로 바꿔주려고 한다.

풀이 과정

문자열인 번호를 배열로 만든 후 설계에 따라 순회하면서 * 로 변경한후 join으로 다시 문자열로 만든다.

function solution(phone_number) {
  const num = phone_number.split('');
  for (let i = num.length - 1; i >= 0; i--) {
    if (!(num.length - 1 >= i && i > num.length - 5)) {
      num[i] = '*';
    }
  }
  return num.join('');
}

다른 사람의 풀이

문제를 보자마자 정규식을 사용하면 간단할 것 같았는데 원하는 정규식을 찾기가 어려웠고 자세하게 검색하면 답을 미리 보게 될까봐 정규식을 사용할 수 없었다.

function hide_numbers(s) {
  return s.replace(/\d(?=\d{4})/g, "*");
}
profile
프론트엔드 개발자가 되기 위해 공부 중입니다.

0개의 댓글