본문 바로가기
기술 개발/Algorithm test

[programmers] JS - 핸드폰 번호 가리기

by 쪼짱 2022. 7. 16.
728x90
반응형
SMALL

코딩 테스트 연습 - 핸드폰 번호 가리기

https://programmers.co.kr/learn/courses/30/lessons/12948

 

문제설명:

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

 

제한사항:

phone_number는 길이 4 이상, 20이하인 문자열입니다.

phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"

초기값

 

// 방법1 - substring 메서드
function solution(phone_number) {
    const answer = phone_number.length - 4
    return '*'.repeat(answer) + phone_number.substring(answer)
} // 문자열 추출 방법(string 메소드) - slice(), substring(), substr() 메소드 사용

// 방법2 - slice 메서드
function solution(phone_number) {
    return '*'.repeat(phone_number.length - 4) + phone_number.slice(-4)
}

// 방법3 - slice 메서드, replace 정규식
function solution(phone_number) {
    var answer = '';
    answer = phone_number.slice(0,-4).replace(/[0-9]/g,'*') + phone_number.slice(-4);
    return answer; // 뒤 4개를 제외한 앞의 숫자들 + 뒤 4개
} // 정규식을 이용하여 문자열 치환 -> replace(/[old str]/g, '[new str]')
    // 플래그(g)는 검색 패턴을 비교할 때 일치하는 모든 부분을 선택하도록 설정함

// 번외 - 정규 표현식 사용(solution 함수 없이 사용)
function hide_numbers(s) {
  return s.replace(/\d(?=\d{4})/g, '*');
} // \d는 숫자를 검색함 /[0-9]/와 같음

 

 

 

728x90
반응형
LIST