과거 프로그래밍 자료들/코딩테스트

[자바스크립트] 프로그래머스 - 핸드폰 번호 가리기

평부 2022. 6. 23. 10:58

* 출처

https://programmers.co.kr/learn/courses/30/lessons/12948?language=javascript 

 

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

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

programmers.co.kr

 

문제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
* 문제
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 
전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
 
* 제한조건
phone_number는 길이 4 이상, 20이하인 문자열입니다
 
* 입출력 예시
phone_number    return
"01033334444"    "*******4444"
"027778888"    "*****8888"
 
* 문제
function solution(phone_number) {
    var answer = '';
    return answer;
}
cs

 

풀이

- repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.

- substring() 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.

1
2
3
4
function solution(phone_number) {
    let length = phone_number.length - 4; //"*"표시할 개수
    return "*".repeat(length) + phone_number.substring(length)
}
cs

 

다른 풀이

- slice() 메서드는 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다.

1
2
3
4
5
function solution(phone_number) {
    //slice로 뒤의 4자리 부분을 -4로 넣어 출력
    let result = "*".repeat(phone_number.length - 4) + phone_number.slice(-4)
    return result;
}
cs