Algorithm - 핸드폰 번호 가리기

devmoonsh·2021년 1월 2일
0

Algorithm

목록 보기
35/37
post-thumbnail

프로그래머스 Lv.1

문제 설명

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

제한 조건

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

입출력 예

phone_number|return
|:-|:-|
|01033334444|*******4444
|027778888| *****8888


나의 풀이

function solution(phone_number) {
    let arr = phone_number.split('');
    let result = '';
  
    for (let i = 0; i < arr.length; i++) {
        if (arr.length - result.length > 4) {
            result += '*';
        } else {
            result += arr[i];
        }
    }
    
    return result;
}
  1. 인자 phone_number를 받아 배열의 형태로 만들어 arr라는 변수에 저장한다.
  2. 최종적으로 출력되어야 할 변수 result에 빈 string을 할당한다.
  3. for 문을 돌려서 안에 조건을 걸어준다.
  4. 만약 arr.length - result.length의 크기가 4보다 크다면 변수 result에 '*'을 추가한다.
  5. 그렇지 않다면 변수 result에 현재 arr의 index의 값을 추가한다.
  6. 최종적으로 변수 result를 출력한다.

다른 사람의 풀이

1. 정규식을 활용한 풀이

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

2. repeat, slice 메서드를 활용한 풀이

function hide_numbers(s){
   var result = "*".repeat(s.length - 4) + s.slice(-4);
   return result;
}
profile
Junior front-end developer

0개의 댓글