문제 설명 |
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. |
제한 조건 |
phone_number는 길이 4 이상, 20이하인 문자열입니다. |
function solution(phone_number) {
var answer = '';
let closenum = '';
let opennum = '';
let pnl = phone_number.length //이건 그냥 코드가 길어져서 짧게 만들어둠
for (let i = 0; i < pnl-4; i++){ //*5678 5자리 pnl=5 0~4 닫아야하는 인덱스는 0까지
closenum = closenum + '*' //빈 문자열에 추가해야할만큼 *를 더함
}
for (let j=pnl-4; j<pnl; j++){ //열어야 하는 자리는 고정이지만 시작해야할 곳을 잘 지정해야함
opennum = opennum + phone_number[j] //opennum에 시작해야하는 인덱스의 요소를 반복해 넣어줌
}
answer = closenum + opennum //문자열+숫자로 문자열을 만들어줌
return answer;
}
다른사람이 푼 신기한 방식
const solution = n => [...n].fill("*",0,n.length-4).join("")
solution = n인데 n을 배열화 시킨 뒤, *으로 0번인덱스부터 n의길이-4까지 바꾸고 다시 문자열로만든다.