[Programmers] JavaScript 핸드폰 번호 가리기

Kim Joy·2023년 3월 5일
0

Programmers 장인

목록 보기
52/67

핸드폰 번호 가리기

문제 설명

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

제한 조건

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

입출력 예

풀이

function solution(phone_number) {
    let back = phone_number.substr(-4,4)
    let change = []
    let array = [...phone_number+""]
    for(i=0;i<array.length-4;i++) {
        change += array[i].replace(/[0-9]/gi,"*")
    }
    return change+back;
}

내가 풀이한 코드는 다음과 같다.
1. substr() 메소드를 사용해서 문자를 반환한다.
2. 빈 배열을 만든다
3. phone_number가 숫자이기때문에 배열로 만든다.
4. 배열의 길이 - 4 만큼씩 for문을 돌린다.
5. for문을 돌릴때마다 빈 배열에 * 가 쌓이겠지?!
6. change+back 을 더해 return 한다.

조금 복잡하게 푼 것 같다.
알아보니 substr() 메소드가 지원 중단이라 이제 사용하지 말라는 내용이 있었다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr

다른 풀이

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

다른 사람이 해결한 1줄 풀이가 있다.

arr.fill(value[, start[, end]])

value는 배열을 채울 값
start는 시작 인덱스
end는 끝 인덱스

join("")을 통해 배열을 다시 문자열로 합쳤다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/fill

profile
코딩어린이 성장중

0개의 댓글