1. 문제 설명


2. 제한 조건


3. 입출력 예

let output = solution("01033334444");
console.log(output); // "*******4444"

output = solution("027778888");
console.log(output); // "*****8888"

4. 문제 풀이

(1) 풀이 1

function solution(phone_number) {
    return phone_number.split('').map((str, idx) => {
    	if (idx < phone_number.length - 4) return '*';
    	return str;
    }).join('');
};

(2) 풀이 2

function solution(phone_number) {
    // case 1
    let star = '*'.repeat(phone_number.length - 4);
    return star + phone_number.slice(-4);
    
    // case 2
    let lastFour = phone_number.slice(-4);
    return lastFour.padStart(phone_number.length, '*');
};

5. 문제 풀이 해설

function solution(phone_number) {
    // 분석
    // 문자열을 배열화 시켜서 변환한 뒤 문자열로 반환하는 방법이 있고
    // 아니면 문자열만으로 해결하는 방법이 있다.
    
    // 풀이 1
    // 배열화 시킨 후, 마지막 네 자리를 제외하고는 '*' 바꿔준다.
    // 조인으로 다시 문자열화 시킨 후 반환한다.
    return phone_number.split('').map((str, idx) => {
        if (idx < phone_number.length - 4) return '*';
        return str;
    }).join('');
    

    // 풀이 2-1
    // 문자열의 길이 및 repeat이나 padStart를 활용한다.
    // 1. repeat case
    let star = '*'.repeat(phone_number.length - 4);
    return star + phone_number.slice(-4);
    
		// 풀이 2-2
    // 2. padStart case
    let lastFour = phone_number.slice(-4);
    return lastFour.padStart(phone_number.length, '*');
};