티스토리 뷰
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number return
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
풀이 과정
더보기
문제를 보고 slice, push 같은 메서드가 자연스럽게 생각났다. 풀기에 어렵지 않을 것 같았다.
//문자열을 배열로 만들고
//slice 하고 push 하면 되겠는디
//배열로 만들어서 slice(phone_number.length - 4,phone_number.length)가 되나
//배열의 길이 -4만큼 push 하면 되나?
이번엔 한줄한줄 console을 찍어보면서 되는지, 안 되는지 진행했다.
정답 코드
function solution(phone_number) {
numArr = [...phone_number]
let fourNumArr = numArr.slice(phone_number.length - 4,phone_number.length)
for(let i = 0; i<phone_number.length - 4; i++){
fourNumArr.unshift("*")
}
const coveredNum = fourNumArr.join("")
return coveredNum
}
정말 오랜만에 100%스스로 점검하며 푼 코드카타여서 기분이 좋다.
성장했나보다.
다른 사람의 풀이
더보기
const solution = n => [...n].fill("*",0,n.length-4).join("")
fill을 이용하여 손쉽게 문자열의 끝에서 4번째까지 "*"로 채우고 join 했다. 쉽고 간단한 방법이고, 메서드 체이닝을 능숙하게 썼다. 나도 메서드 체이닝을 시도해봐야겠다.
'스파르타 > 알고리즘 코드카타' 카테고리의 다른 글
코딩 테스트 - 문자열 내림차순으로 배치하기 (0) | 2024.09.13 |
---|---|
코딩 테스트 - 제일 작은 수 제거하기 (0) | 2024.08.29 |
코딩 테스트 - 나누어 떨어지는 숫자 배열 (0) | 2024.08.22 |
코딩 테스트 - 서울에서 김서방 찾기 (0) | 2024.08.21 |
코딩 테스트 - 정수 내림차순으로 배치하기 (0) | 2024.08.16 |