본문 바로가기
Algorithm/Programmers

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

by 백승전 2022. 4. 24.

 

알림

 

본 포스팅은 공부 목적으로 작성된 글이며 상업적 목적으로 절대 사용되지 않았음을 밝힙니다.

 

문제

 

https://programmers.co.kr/learn/courses/30/lessons/12948

 

코딩테스트 연습 - 핸드폰 번호 가리기

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

programmers.co.kr

 

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

 

풀이

 

slice() 함수를 사용하여 끝에서 원하는 자리까지 자를 수 있기 때문에 일단 풀이에 이 함수를 활용하기로 했습니다. 그리고 전화번호의 뒷 4자리를 제외한 나머지를 *으로 가린다고 하였으니 replace() 함수를 사용할 생각이었지만 검색하다가 repeat()이라는 함수를 발견하여 이 함수를 사용하기로 했습니다.

 

코드

 

function solution(phone_number) {
    let answer = '';
    
    answer = '*'.repeat(phone_number.length - 4) + phone_number.slice(-4);
    
    return answer;
}

 

repeat() 함수는 문자열을 주어진 횟수만큼 반복시킵니다. 따라서 처음에 전화번호의 길이(phone_number.length)에서 뒷 4자리를 제외해야 하니 4를 빼 줄 것이고, 그렇게 해서 도출된 횟수만큼 *을 반복시킵니다. 이 과정이 전화번호 뒷 4자리를 제외한 나머지를 *으로 가린 과정입니다.

 

그리고 우린 이 *들과 전화번호 뒷 4자리를 더해야 하니, 처음에 제가 말씀드린 것처럼 slice() 함수를 사용해 받아오는 전화번호의 뒤에서부터 4자리 수를 잘라 더해줍니다.(예) 01022334455에서 11-4 = 7이고, 이 번호의 뒷 4자리는 4455이니, ******* + 4455 = *******4455)

 

노트

 

repeat(): 문자열을 주어진 횟수만큼 반복한다.

댓글