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

woolee의 기록보관소·2022년 10월 26일
0

알고리즘 문제풀이

목록 보기
21/178

문제 출처

프로그래머스 lev1 - 핸드폰 번호 가리기

문제

나의 풀이

function solution(phone_number) {
  let len = phone_number.length-4; 
  let star = '';
  for (let i=0; i<len; i++) {
    star += '*';
  }
  return star + phone_number.slice(-4);
  
}

console.log(solution("027778888"));

다른 풀이

repeat 함수 사용

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

console.log(hide_numbers("027778888"));

삼항 연산자

function hide_numbers(s){
  var result = ""
  for(var i=0;i< s.length;i++){    
    result += i < s.length -4 ? "*" : s.charAt(i);
  }  
  return result;
}

console.log(hide_numbers("027778888"));

문자열 n 을 배열로 바꾸고, 배열의 첫번째부터 마지막에서 4번째 전 배열크기만큼 * 로 채워라. 이 후에 join 하여 string으로 반환하라

const solution = n => [...n].fill("*",0,n.length-4).join("")

정규식 풀이

\d : 숫자 [0~9]
\d{number} : {} 안에 있는 건 숫자의 개수를 의미
?= : 전방탐색 = 뒤에 오는 문자 전까지를 의미함.

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

console.log(hide_numbers("027778888"));

참고

정규표현식 (Regex) 정리
정규표현식 9편. 전후방 탐색
https://curryyou.tistory.com/234
https://highcode.tistory.com/6

profile
https://medium.com/@wooleejaan

0개의 댓글