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

아름·2023년 11월 30일
0

알고리즘

목록 보기
14/26

🔎 문제

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

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

입출력 예


🔓 풀이 과정

고민

1) for문을 쓰려고 했는데 너무 복잡해질 거 같다
2) 뒤의 네자리만 빼고 앞에는 전부 *로 출력하기 // repeat 사용하기
3) 뒤의 네자리만 숫자로 붙여주기 // slice 사용하기

나의 풀이

function solution(phone_number) {
  let n = phone_number.length;
  let start = "*".repeat(n - 4);

  return start + phone_number.slice(-4);
}
// repeat 메소드
// String.repeat(count)
// String : 반복하고자 하는 문자, count : 문자열을 거듭 덧붙이는 횟수

// slice 메소드
// 배열을 잘라서 새롭게 추출해줌
// arr.slice(-n) // 마지막 n개의 요소 추출

그 밖의 풀이

// for문 사용
function solution(phone_number) {
  newStr = "";
  for (let i = 0; i < phone_number.length; i++) {
    newStr += i < phone_number.length - 4 ? "*" : phone_number[i];
  }
  return newStr;
}
// 정규식 사용
function hide_numbers(s) {
  return s.replace(/\d(?=\d{4})/g, "*");
}
profile
내 꿈은 개발자

0개의 댓글