programmers 코딩테스트 : 핸드폰 번호 가리기

H·2022년 4월 7일
0

Coding Test

목록 보기
4/26

🔔 핸드폰 번호 가리기

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

⛔ 제한 조건
phone_number는 길이 4 이상, 20이하인 문자열입니다.


🔠 첫번째 통과한 코드

function solution(str) {
  let answer = "";
  let strLength = str.length - 4; // 숫자
  let strCut = str.slice(0, strLength); //숫자 > 별까지의 str
  let star = "*"; 
  answer = str.replace(strCut, star.repeat(strLength)); 
  return answer;
}

📌 코드 설명

  1. 전화번호의 뒷 4자리를 제외한 나머지 숫자를 노출하기 위해 slice로 첫번째부터 strLength까지 자르기
  2. answer에 replace()로 자른 숫자를 star로 strLength만큼 노출되게 만들기

str.slice(시작, 끝)
📍 문자열을 시작과 끝까지 추출해 새로운 문자열 반환함
📍 시작하는 index는 0부터 시작하고, 음수부터 시작하는 경우 strLength(문자열 길이) + 시작으로 나옴
📍 시작 index가 전체 문자열의 길이보다 크거나 같은 경우 빈 문자열을 반환하고, 끝 index가 없다면 문자열의 마지막까지 추출

repeat(반복 횟수)
📍 주어진 횟수만큼 반복해서 붙인 새로운 문자열을 반환한다.

🔠 두번째 통과한 코드

function solution(phone_number) {
  answer = phone_number.replace(/\d(?=.{4})/g, '*');
  return answer;
}

📌 코드 설명

정규식을 사용한 풀이 방법
📍 /\d(?=.{4})/g : 숫자 뒷자리 4개 제외하고 / 모두 찾은 후 replace *
정규식 만드는 사이트

profile
🤘 돌머리도 ROCK이다! 🤘

0개의 댓글