728x90
문제
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
s는 길이 4 이상, 20이하인 문자열입니다.
나의 풀이
예시) '01033334444' -> '*******4444'
function solution(phone_number) {
var answer = '';
answer = phone_number.slice(0,phone_number.length-4);
for(let i = 0; i<answer.length;i++){
answer = answer.replace(answer[i], "*");
}
return answer + phone_number.slice(phone_number.length-4);
}
우선 answer에 phone_number에서 slice한 0103333를 넣는다.
그리고 반복문을 돌리면서 각 자리 수를 *로 바꾼다.
*로 바꾸어진 answer과 phone_number의 마지막 4자리를 반환한다.
이 문제를 정규식으로 풀 수 있겠다 싶었지만 아직 정규식에 대한 지식이 모자라 풀지 못 했다.
위의 방식으로 해결하고 난 뒤 다른 사람의 풀이를 보니 정규식 풀이법이 있었다.
function hide_numbers(s) {
return s.replace(/\d(?=\d{4})/g, "*");
}
0~9의 수(\d) 뒤에 4자리의 0~9의 수가 오는 숫자를 *로 변환한다.
풀이를 보면 이해가 되는데 직접 정규식을 만들지 못해서 슬프다... 더 노력해야겠다.
320x100
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[자바스크립트/알고리즘] 프로그래머스-이상한 문자 만들기 (0) | 2021.01.22 |
---|---|
[자바스크립트/알고리즘] 프로그래머스-자연수 뒤집어 배열로 만들기 (0) | 2021.01.22 |
[자바스크립트/알고리즘] 프로그래머스-수박수박수박수박수박수? (0) | 2021.01.21 |
[자바스크립트/알고리즘] 프로그래머스- 나누어 떨어지는 숫자 배열 (0) | 2021.01.21 |
[자바스크립트/알고리즘] 프로그래머스 - 가운데 글자 가져오기 (2) | 2021.01.21 |