231129 TIL

chillakilla·2023년 11월 29일

핸드폰 번호 가리기

Q : 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

입출력 예

솔루션 코드

<script>
function solution(phone_number) {
  return phone_number
    .split("")
    .fill("*", 0, phone_number.length - 4)
    .join("");
}
</script>

풀이 순서 및 해석

  • 주어지는 문자열 중 특정 부분을 *로 변환, 특정 부분은 원본으로 반환
  • 그러기 위해선 입력 받은 문자열을 쪼갠 후, 특정 부분을 *로 변환해야함
  • 그 후 쪼개서 변환한 것을 다시금 문자열로 합쳐서 반환
  • 그러니 split 사용하여 입력 받은 phone_number 각 요소를 전부 조각냄
  • fill 메서드를 사용, value값에 '*', state 부분에 0번째부터 end 에는 입력 받은 phone_number의 개수 끝 -4번째까지 변환시켜줌.
  • 마지막으로 join 메서드를 사용해 다시 문자열을 합치고 반환.


다른 사람의 풀이

<script>
const hide_num = (phone_number) => {
  let result = "*".repeat(phone_number.length - 4) + phone_number.slice(-4);
  return result;
};
</script> 

'*'을 phone_number의 -4까지 만큼 반복시켜 변환시키셨고, 거기다가 slice 메서드를 사용해 뒤에 필요한 숫자부분을 잘라낸 것을 다시 더해주셨다.

String.prototype.repeat()
: repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.

<script>
str.repeat(count);
</script>
profile
꾸준하려 하는 쉽덕놈

0개의 댓글