https://programmers.co.kr/learn/courses/30/lessons/12948
// 1. split & join
// function solution(phone_number) {
// let arr = phone_number.split("");
// let len = phone_number.length;
// for (let i = 0; i < len - 4; i++) {
// arr[i] = '*';
// }
// var answer = arr.join('');
// return answer;
// }
function solution(phone_number) {
// 2. repeat & slice
// let answer = '*'.repeat(phone_number.length - 4) + phone_number.slice(-4);
// 3. 정규표현식
let answer = phone_number.replace(/\d(?=\d{4})/g, '*');
return answer;
}
let phone_number = "01033334444";
console.log(solution(phone_number));
핸드폰 번호 4개의 뒷자리 빼고는 다 로 바꾸는 문제다.
총 3가지 방법이 있었다.
1. split & join
split을 이용해 휴대폰번호를 먼저 나누고, 뒤에서 4번째 까지 로 바꾼 후 배열을 join시킨다.
2. repeat & slice
내가 생각 못 했던 방법이다.
repeat을 자주 사용해보지않아 잊고 있었다.
*를 휴대폰번호길이에서 -4한거만큼 repeat으로 반복시켜 휴대폰번호에서 slice로 뒤에서 4개를 잘라서 이어 붙이는 방법이다.
3. 정규표현식
문자열을 어떤 문자로 바꾼다가 문제라서 바로 replace가 생각났었다.
정규표현식으로 replace를 사용하여 뒷자리 4개 빼고 모두 *로 바꾸는 방법이다.