저장을 습관화
프로그래머스 LV.1 핸드폰 번호 가리기 본문
프로그래머스 LV.1 핸드폰 번호 가리기
https://school.programmers.co.kr/learn/courses/30/lessons/12948
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
핸드폰 번호 가리기
2. 문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
3. 제한 사항
phone_number는 길이 4 이상, 20이하인 문자열입니다.
4. 예시
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
5. 기본 제공 코드
function solution(phone_number) {
var answer = '';
return answer;
}
6. 제출한 내 답
const solution = (phone_number) => {
return `${
phone_number.slice(0, -4).replace(/[0-9]/gi, "*") + phone_number.slice(-4)
}`;
};
6-2. VSC에 작성한 내용
const solution = (phone_number) => {
// const censored = phone_number.slice(0, -4).replace(/[0-9]/gi, "*");
// const uncensored = phone_number.slice(-4);
// phone_number = phone_number.replace(/[0-9]/gi, "*");
// return censored + uncensored;
return `${
phone_number.slice(0, -4).replace(/[0-9]/gi, "*") + phone_number.slice(-4)
}`;
};
// test
console.log(solution("01033334444"));
console.log(solution("027778888"));
7. 특이사항
신기하게도 방금 전에 정리한 slice와 replace를 둘 모두 사용할 수 있는 문제가 나왔다
블로그에 정리하길 잘했다는 생각이 든다
8. 다른 사람이 작성한 답
8-1.
// 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
// 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
function hide_numbers(s){
return s.replace(/\d(?=\d{4})/g, "*");
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + hide_numbers('01033334444'));
정규식은 정말 심오하구나
8-2.
// 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
// 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
function hide_numbers(s){
var result = "*".repeat(s.length - 4) + s.slice(-4);
return result;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + hide_numbers('01033334444'));
8-3.
// 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
// 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.
function hide_numbers(s){
var result = "";
//함수를 완성해주세요
for(var i=0; i<s.length; i++){
result += i < s.length-4 ? "*":s.charAt(i);
}
return result;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + hide_numbers('01033334444'));
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.1 두 정수 사이의 합 (0) | 2023.09.09 |
---|---|
프로그래머스 LV.0 두 수의 연산값 비교하기 (0) | 2023.09.09 |
프로그래머스 LV.0 문자열 겹쳐쓰기 (0) | 2023.09.09 |
프로그래머스 LV.0 홀짝 구분하기 (0) | 2023.09.08 |
프로그래머스 LV.0 문자열 돌리기 (0) | 2023.09.08 |