티스토리 뷰

문제 설명

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

 

제한 조건

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

입출력 예

phone_number                                                                                   return

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

 

풀이 과정

더보기

문제를 보고 slice, push 같은 메서드가 자연스럽게 생각났다. 풀기에 어렵지 않을 것 같았다.

//문자열을 배열로 만들고
//slice 하고 push 하면 되겠는디

//배열로 만들어서 slice(phone_number.length - 4,phone_number.length)가 되나 
//배열의 길이 -4만큼 push 하면 되나?

이번엔 한줄한줄 console을 찍어보면서 되는지, 안 되는지 진행했다.

정답 코드

function solution(phone_number) {
    numArr = [...phone_number]
    let fourNumArr = numArr.slice(phone_number.length - 4,phone_number.length)
        for(let i = 0; i<phone_number.length - 4; i++){
        fourNumArr.unshift("*")
    }
    const coveredNum = fourNumArr.join("")

    return coveredNum
}

정말 오랜만에 100%스스로 점검하며 푼 코드카타여서 기분이 좋다. 

성장했나보다.

 

다른 사람의 풀이

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

fill을 이용하여 손쉽게 문자열의 끝에서 4번째까지 "*"로 채우고 join 했다. 쉽고 간단한 방법이고, 메서드 체이닝을 능숙하게 썼다. 나도 메서드 체이닝을 시도해봐야겠다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함