https://school.programmers.co.kr/learn/courses/30/lessons/12948
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
나의 풀이
repeat()을 사용하여 *을 주어진 전화번호 길이에서 네 자리를 뺀 만큼의 개수만큼 반복해 주었다. 그리고 마지막 번호 4자리를 splice()를 통해 가져와 별의 문자열과 함께 합쳐주었다.
function solution(phone_number) {
return '*'.repeat(phone_number.length-4)+phone_number.split("").splice(-4).join("");
}
다른 풀이
나는 splice()를 사용했는데 splice는 배열을 사용해야 해서 split("")으로 배열로 만들어준 뒤 마지막에 문자열로 반환하기 위해 join("")을 해주었다. 하지만 이 풀이에서는 splice를 사용하였다. 굳이 split("")과 join("")을 쓰지 않고도 문자열에서 원하는 부분을 가져올 수 있어서 앞으로 잘 사용해 봐야겠다.
function solution(s){
return "*".repeat(s.length - 4) + s.slice(-4);
}
정규식 사용한 풀이
비록 효율성면에서는 조금 뒤처지지만 정규식으로 풀어낸 방법이 좋은것 같아 메모해 두었다.
function hide_numbers(s) {
return s.replace(/\d(?=\d{4})/g, "*");
}
'코딩 문제 > 프로그래머스 [ JavaScript ]' 카테고리의 다른 글
[ 프로그래머스 / Javascript ] 가운데 글자 가져오기 (0) | 2022.12.17 |
---|---|
[ 프로그래머스 / Javascript ] 점프와 순간 이동 (0) | 2022.12.15 |
[ 프로그래머스 / Javascript ] OX퀴즈 (0) | 2022.12.11 |
[ 프로그래머스 / Javascript ] 평행 (0) | 2022.12.11 |
[ 프로그래머스 / Javascript ] 가장 가까운 같은 글자 (0) | 2022.12.10 |
댓글