코딩테스트 | (JavaScript) 프로그래머스 : 핸드폰 번호

✅문제

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

❕ 제한사항

  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

🎹📢입출력 예제

✍풀어보기

function solution(phone_number) {
    let answer = '';
    
    /* 전화번호가 5자리 이상인 경우에만 실행되며
       뒷 4자리를 제외한 나머지 숫자들을 '*'로 가리기 위한 로직 */
    for(let i = phone_number.length - 5; i >= 0; --i){
        answer += '*';
    }
    
    // 끝에서 4번째 인덱스부터 4개의 문자열을 반환받아 추가해준다.
    answer += phone_number.substr(phone_number.length - 4, 4);
    
    return answer;
}

처음엔 C++의 기능이 당연히 될줄 알고 phone_number[i] = '*';처럼 인덱스를 직접 접근하여 바꾸는 방법으로 시도 했는데 데이터가 read only로 되어있다며 에러가 낫다. 결국은 재조립하는 방법 밖에 없다는 생각으로 다시 작성해서 금방 풀었다.


🎈다른 사람의 풀이

const solution = n => [...n].fill("*",0,n.length-4).join("")

저렇게 깔끔하게 한줄로 끝낼 수 있다니.. 아직은 익숙해지기 어렵긴하지만 역시 자바스크립트 알면 알수록 대단하다. 하다보면 C++ 코드 작성할 때의 고무된 생각을 더 확장시켜서 나도 저렇게 작성할 수 있겠지..?



참고 자료 및 사이트 (감사합니다)

좋은 웹페이지 즐겨찾기