[프로그래머스] 핸드폰 번호 가리기 - JavaScript

coderH·2022년 3월 30일
1

프로그래머스코테

목록 보기
9/27
post-thumbnail

핸드폰 번호 가리기

문제

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

제한 조건
phone_number는 길이 4 이상, 20이하인 문자열입니다.

입출력 예

phone_numberreturn
"01033334444""*******4444"
"027778888""*****8888"

정답

function solution(num) {
  const backNum = num.length - 4;
  let result = "";
  for (let i = 0; i < num.length; i++) {
      if (i >= backNum) {
          result += num[i];
          continue;
      }
      result += "*";
  }
  return result;
}

풀이

for문을 통해 인자로 받은 num의 길이만큼 반복합니다.

backNum변수에는 반복문 도중 숫자가 표시되어야할 부분을 체크하기 위해
num의 길이에서 4를 뺀 값을 할당시켜놓았고
result에는 반복시마다 알맞은 문자열이 추가됩니다.

반복시마다 i가 끝 4자리 수에 진입할 때부터는 num[i]
숫자를 result에 집어넣고 아닐 경우 *result에 추가합니다.

리팩토링

function solution(num) {
    return ("*".repeat(num.length-4)) + num.slice(-4);
}

JS의 문자열 메소드 중 하나인 repeat메소드를 이용한 풀이입니다.

str.repeat(count)

repeat메소드는 앞에있는 문자열을 인자로 들어온 숫자만큼 반복하며
뒤의 4자리는 num에 slice메소드를 적용하여 -4, 즉 뒤 4자리부터 끝까지의 문자열을 반환합니다.

0개의 댓글