알고리즘/JS

핸드폰 번호 가리기

namu445 2022. 1. 14. 19:20

문제 설명

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

 

제한 조건
  • s는 길이 4 이상, 20이하인 문자열입니다.

 

입출력 예
phone_number return
"01033334444" "*******4444"
"027778888" "*****888

 

//나눠저있지 않은 배열을 변경하려고 하면 오류가 난다. 배열 값 하나를 나눠서 변경후 재 조립했다.
//indxOf, splice, delete를 같이 사용하면 쉽게 배열을 변경할 수 있을 지도 중요한 건 splice?
//repeat, slice, 정규식을 이용한 방법 등

function solution(phone_number) {
    var answer = '';
    let space = []
    
    for (let i=0; i<phone_number.length; i++) {
        space.push(phone_number[i])
        //phone_number[i] = '*'        
    }
    
    for (let i=0; i<phone_number.length - 4; i++) {
        space[i] = '*'        
    }
    
    for (let i=0; i<space.length; i++) {
        answer += space[i]
    }
    
    console.log(phone_number)
    console.log(space)
    console.log(answer)
    
    return answer;
}

 

참고: https://mylko72.gitbooks.io/javascript-cookbook/content/chapter5/chapter5_9.html

 

배열 원소를 검색하여 없애거나 바꾸기 | Javascript Cookbook

 

mylko72.gitbooks.io

MDN splice 문서: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

 

Array.prototype.splice() - JavaScript | MDN

splice() 메서드는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경합니다.

developer.mozilla.org