본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 105 - 핸드폰 번호 가리기)

728x90

 

# 문제

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



# 답안


// 방법 1) for 반복문 사용

// 빈배열 만들고,
// i가 끝 4자리 순번에 속하면 해당 순번에 해당하는 숫자를 추가
// 아니면 *를 추가

function solution(phone_number) {
  let answer = "";
  for (let i = 0; i < phone_number.length; i++) {
    if (i >= phone_number.length - 4) {
      answer += phone_number[i];
    } else {
      answer += "*";
    }
  }
  return answer;
}



// 방법 2) slice, replace, repeat 사용

// phone_number에서 첨~마지막4자리전까지 자른거(str)를 *로 대체
// 대체할 때 *를 str의 길이만큼 반복해서 대체해줘야함

function solution(phone_number) {
  const str = phone_number.slice(0, -4);
  return phone_number.replace(str, "*".repeat(str.length));
}



// 방법 3) repeat, splice 사용

// *를 길이-4만큼 반복한 것과 phone_number뒤에 4개 자른 것을 더한다.

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