채린씨의 티스토리
[Programmers] Level1 - 핸드폰 번호 가리기(JavaScript) 본문
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
나의 풀이
'직사각형 별찍기' 문제의 다른 사람 풀이에서 봤던 repeat 메서드를 활용했다!
function solution(phone_number) {
// "*"을 phone_number의 길이에서 4만큼 뺀 횟수만큼 반복한 문자열과
// phone_number의 -4인덱스부터 끝까지 추출한 문자열을
// 이어붙인 후 반환
return "*".repeat(phone_number.length - 4) + phone_number.slice(-4);
}
좋았던 다른 사람의 풀이
정규식을 활용했다. 코딩테스트를 볼 때 정규식이 익숙하지 않아서 난감했던 적이 종종 있었는데, 이번 기회에 정규식을 제대로 알아봐야겠다. 조만간 정규식 관련 글로 돌아오겠어요!
function hide_numbers(s) {
return s.replace(/\d(?=\d{4})/g, "*");
}
프로그래머스 문제들의 자바스크립트 풀이가 궁금하신가요? 아래 링크를 클릭해보세요!
https://programmers-solution-bank.netlify.app/
'코딩테스트 대비' 카테고리의 다른 글
[Programmers] Level1 - 평균 구하기(JavaScript) (0) | 2022.04.01 |
---|---|
[Programmers] Level1 - 하샤드 수(JavaScript) (0) | 2022.04.01 |
[Programmers] Level1 - 완주하지 못한 선수(JavaScript) (0) | 2022.03.22 |
[Programmers] Level1 - 행렬의 덧셈(JavaScript) (0) | 2022.03.22 |
[Programmers] Level1 - x만큼 간격이 있는 n개의 숫자(JavaScript) (0) | 2022.03.22 |
Comments