[프로그래머스 Lv1] 핸드폰 번호 가리기 - (Javascript)

eeeyooon·2023년 12월 16일
0

핸드폰 번호 가리기

문제 링크

📩 문제 설명

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

제한사항

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

입출력 예

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

제출 답안

function solution(phone_number) {
    const back4num = phone_number.length - 4;
    let answer = "*".repeat(back4num) + (phone_number.split("").splice(back4num)).join("")
   return answer;
}

답안 설명

우선 전화번호 뒷 4자리를 제외하고는 나머지 숫자는 모두 "*"로 가려야했으므로, 나머지 숫자만큼 *를 repeat()을 사용하여 미리 채워줬다. 그 다음 전화번호가 담긴 문자열을 배열로 만들어 splice()로 뒤 4자리 숫자를 answer에 추가하는 방법을 사용했다. 하지만 굳이 배열로 만들지 않고도 쉬운 방법이 있을 것 같은데 쉽게 떠오르지 않았다.


다른 사람의 풀이

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

slice도 splice처럼 배열에서 쓰는 메소드로 생각하고 있었는데 slice는 배열, 문자열 모두 쓰이고 있는 걸 놓치고 있었다. 이런 메서드가 없을까 고민했지만 떠오르지 않았는데, slice를 쓰니 코드가 훨씬 간결해졌다. 자꾸 쓰던 메서드만 쓰게되는데 slice도 잊지 않고 잘 기억해야겠다.


0개의 댓글