Programmers | #Lv1 "핸드폰 번호 가리기"

블로그 이사 완료·2022년 9월 18일
0
post-thumbnail

문제 설명

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


제한 조건

phone_number는 길이 4 이상, 20이하인 문자열입니다.


입/출력 예

phone_numberreturn
"01033334444""*******4444"
"027778888""*****8888"

나의 풀이

function solution(phone_number) {
  const answer = phone_number.length - 4;

  return '*'.repeat(answer) + phone_number.substring(answer);
}

다른 풀이

function hide_numbers(s) {
  return s.replace(/\d(?=\d{4})/g, "*");
}

Review

주어진 전화번호의 마지막 4자리를 제외한 나머지를 * 로 가려야한다.

변수 answer에 주어진 전화번호를 배열로 변환하면서 .length-4로 나머지 자리 수를 대입한다. (10자리 라면 6, 12자리 라면 8이 대입된다.)

repeat(answer) 을 사용해 * 를 answer의 값 만큼 반복하고 substring(answer) 로 배열에서 answer의 값 자리 수 이후의 값을 반환한다.

예를 들어, 10자리 전화번호라면 -4된 6 이 answer의 값으로 대입된다.
그 다음 *6번 반복되고 10자리 중 6번째 자리 이후의 값이 반환 되는 것이다.

이처럼 substring은 원하는 인덱스 번호 구간의 값을 반환 할 수 있다.


참고 : substring() - Mdn Web Docs

profile
https://kyledev.tistory.com/

0개의 댓글