알림
본 포스팅은 공부 목적으로 작성된 글이며 상업적 목적으로 절대 사용되지 않았음을 밝힙니다.
문제
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(): 문자열을 주어진 횟수만큼 반복한다.
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 직사각형 별 찍기(JavaScript) (0) | 2022.04.25 |
---|---|
[Programmers] x만큼 간격이 있는 n개의 숫자(JavaScript) (0) | 2022.04.24 |
[Programmers] 124 나라의 숫자(JavaScript) (0) | 2022.04.07 |
[Programmers] 제일 작은 수 제거(JavaScript) (0) | 2022.04.04 |
[Programmers] 평균 구하기(JavaScript) (0) | 2022.03.27 |
댓글