코딩테스트

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

김애룽 2024. 1. 27. 14:31

문제 설명

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

 

제한 조건

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

입출력 예

phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"

 

문제 풀이

function solution(phone_number) {
    var answer = '';
    
    for(let i=0; i<phone_number.length; i++){
        if(i>=phone_number.length-4)
            answer+=phone_number[i];
        else
            answer+="*";
    }
    
    return answer;
}

 

for 문을 이용해서 뒤에 4자리부터의 숫자들은 숫자를 그대로 출력하게 두었고 그 외의 숫자들은 * 를 출력했다. 

 

다른 풀이법

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

 

repeat과 slice 함수를 이용해서 더 쉽게 쓴 풀이가 있었다.

 

  • "*".repeat(s.length-4) : 문자열의 처음부터 마지막 4개 문자 이전까지를 별표로 채운다. 
  • s.slice(-4) : 문자열 's'의 마지막 4개 문자를 추출한다.

반복되는 문자열을 표시할 때는 repeat()를 사용하고 특정 부분을 추출할 때는 slice를 사용하면 된다.