Algorithm
[JavaScript] 프로그래머스 - 핸드폰 번호 가리기
by 미프프
2022. 9. 22.
/*
문제 : 전화번호가 문자열 phone_number로 주어졌을 때,
전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수를 만들어라
자료 : phone_number는 길이 4 이상, 20이하인 문자열
조건 : 뒷 4자리를 제외한 나머지 숫자를 전부 *로 가려라
계획 : map()을 이용해서... index [0]~ [8] 까진 *으로...
아니면 문자열을 반복문으로 바꾼다.
반성 :
map()을 이용해 푸려던 건 잘못된 접근이었고 바로
for문으로 푸는 건 풀었지만
다른 방식이 아예 생각이 안 났었다.
정규식을 이용하는 거나 repeat()도 처음알았고,
slice()는 매번 쓰는데도 헷갈렸었다...
*/
const solution = (phone_number) => {
const answer = phone_number.split('');
for (let i = answer.length; i >= 0; i--) {
if (i < answer.length - 4) {
answer[i] = '*';
}
}
return answer.join('');
};
// 정규식 풀이
const solution2 = (phone_number) => {
return phone_number.replace(/\d(?=\d{4})/g, '*');
};
// repeat() slice()
const solution3 = (phone_number) => {
return '*'.repeat(phone_number.length - 4) + phone_number.slice(-4);
};