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

Janet·2023년 2월 23일
0

Algorithm

목록 보기
31/314

문제 설명

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

제한 조건

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

입출력 예

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

문제풀이

💡 문제풀이 과정

  • 내가 생각한 것은 repeat()substring() 이었는데 (1번 답안), 다른 분들의 풀이를 참고 해보니, 2번 답안인 repeat()slice()의 조합이 가장 간단 명료해 보였다. slice를 음수로 적용하여 쓸 수 있다는 것도 새롭게 배웠다.
  • 3번 답안의 경우 문자열을 배열로 변환하여 fill()함수를 통해 마스킹(*)처리를 해 주는 방법 또한 좋았다.
  • 마지막으로 4번 답안인 정규식은 간편하니? 좋긴 한데 쓸 때 구글링을 해봐야 할 것 같다.

✅ 답안 #1 - repeat(), substring()

function solution(num) {
  const leng = num.length;
  return (
    "*".repeat(num.substring(0, leng - 4).length) +
    num.substring(leng, leng - 4)
  );
}

✅ 답안 #2 - repeat(), slice()

function solution(num) {
  return "*".repeat(num.length - 4) + num.slice(-4);
}

✅ 답안 #3 - [...array], fill(), join()

function solution(num) {
  return [...num].fill("*", 0, num.length - 4).join("");
}

✅ 답안 #4 - 정규식 replace()

function solution(num) {
  return num.replace(/\d(?=\d{4})/g, "*");
}
profile
😸

0개의 댓글