728x90
https://programmers.co.kr/learn/courses/30/lessons/12948
function solution(phone_number) {
var answer = '';
// 숫자를 뒤에서 4번째 index부터 두 그룹으로 잘라서 관리할 예정
let frontNum;
let behindNum;
// 앞의 숫자에 들어오는 길이가 4일경우 앞의 숫자는 비워준다.
if(phone_number.length === 4){
frontNum = '';
}
else{
// 그렇지 않으면 .substr(-4)는 뒤에서부터 4번째에서 문자열을 자르고
// 그 위치에서부터 split한다. 제일뒤에 [0] index는 split하고 앞의것을 가져온다
frontNum = phone_number.split(phone_number.substr(-4))[0]
}
// 뒤에4번째부터 자른다.
behindNum = phone_number.substr(-4)
// 앞의숫자는 이제 앞의 숫자의 길이만큼 *을 반복해서 채워준다
frontNum = '*'.repeat(frontNum.length)
// 두 수를 더한다.
return frontNum + behindNum;
}
내코드는 테스트케이스 13번을 통과하지 못했다.
13번이 무엇인지 모르지만,, 결국 해결을 못했고
정답을 보았다. 정답에는 두종류가 있었는데, 하나는 정규표현식으로, 다른 하나는 아래처럼 심플하게 짠 구조였다.
정규표현식보다는 아직은 심플한 기본에 충실하고 싶어서 심플한거만 가져와서 이해했다.
아래 함수는 나의 알고리즘과 같지만 코드의 길이나 완성도에서 차이가 많이난다.
먼저 repeat으로 문자열의 길이만큼 채워주고, 그 뒤에는 자른 문자열을 붙힌다 이다.
function hide_numbers(s){
var result = "*".repeat(s.length - 4) + s.slice(-4);
//함수를 완성해주세요
return result;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + hide_numbers('01033334444'));
728x90
'알고리즘' 카테고리의 다른 글
프로그래머스 Level 1 -두 정수의 합(Javascript) (0) | 2022.05.13 |
---|---|
프로그래머스 Level 1 -하샤드 수(Javascript) (0) | 2022.05.13 |
Javascript로 백준에서 문제풀기 (Node.js) (0) | 2022.05.13 |
프로그래머스 Level 1 - 제일 작은 수 제거하기(Javascript) (0) | 2022.05.13 |
프로그래머스 Level 1 - 짝수와 홀수 (Javascript) (0) | 2022.05.12 |