코딩테스트(JavaScript) 프로그래머스 : 핸드폰 번호 가리기

Parkboss·2022년 8월 23일
0

코딩테스트

목록 보기
4/19

✅문제

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

❕ 제한사항

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

📢 입출력 예제

왜 풀지 못하였는가...


💻 다른 사람 풀이

function solution(phone_number) {
  var answer = ' ';

// 번호 뒷 4자리 가져오기
  let back = phone_number.substr(-4,4);
  console.log(back);
  
// 번호 뒷 4자리를 제외한 앞부분 가져오가
  let front = phone_number.substring(0,phone_number.length-4);
  console.log(front);
  
// 뒷 4자리 제외한 앞부분을 * 문자로 변환해주기
  let result = front.replace(/[0-9]/g,'*');
  console.log(result);
  
// * 문자로 변환해 준 부분과 뒷자리를 더해서 값을 구하기
  answer = result + back;

  return answer;
}

다른 사람 풀이 방식

  • back 변수를 선언한 다음, .substr() 함수를 이용하여 뒷 번호 4자리를 가져온다.
  • front 변수 선언 후, .substring()함수를 이용하여 처음부터 뒤에 4자리 제외하고 그 앞부분까지 번호를 가져온다.
  • result 변수 선언히고 front라는 변수에 저장된 숫자들을 .replace()를 사용하여 *로 바꿔준다.
  • result와 back을 더해 값을 구한다.

.replace() 알아보자!

  • 어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환한다.
  • g는 전체 문자열을 치환(global) / i는 영문 대소문자를 무시하고 일치하는 패턴 검색하여 치환(ignore)

📢 substr(), substring() 알아보자!

substr 함수로 문자열 자르는 방법!


let str = '안녕하세요';

let result = str.substr(0,2);
// 출력: '안녕'

let result2 = str.substr(2,3);
// 출력: '하세요'

let result3 = str.substr(2);
// 출력: '하세요'

substr("시작 위치", "길이") 또는 substr("시작 위치")

  • substr() 함수는 시작 위치부터 해당 길이만큼 문자열을 자르는 아주 기본적인 함수이다.
    "길이" 부분을 생략하면 시작 위치부터 문자열 끝까지 자른다.

substring 함수로 문자열 자르는 방법!

let str = '안녕하세요`;

let result = str.substring(0,2);
// 출력: '안녕'

let result2 = str.substring(2,5);
// 출력: '하세요'

let result3 = str.substring(2,4);
// 출력: '하세'

let result4 = str.substring(3);
// 출력: '세요'

substring("시작 위치", "종료 위치") 또는 substring("시작 위치")

  • substring() 함수는 시작 위치에서 종류 위치까지 문자열을 자른다.
    주의할 점은 종료 위치의 -1까지 문자열을 자른다.

substring() 함수에서 음수(-)사용시 주의사항


let str = '안녕하세요`;

let result = str.substring(-4,4); //str.substring(0,4)
// 출력: '안녕하세'

let result2 = str.substring(2,-1); //str.substring(0,2);
// 출력: '안녕'
  • substring() 함수에서 인자에 음수(-)를 대입하면 해당 값은 "0"으로 치환되며, 종료 위치에 음수(-) 또는 "0"인 경우 첫 번째 인수와 두 번째 인수가 뒤바뀐다는 것을 주의해야 한다.

💻 간단한 풀이


function solution(p) {
  var result = '*'.repeat(p.length - 4) + p.slice(-4);
  
  return result;
}

slice 함수로 문자열 자르는 방법(뒤에서 부터 자르기)

slice("시작 위치", "종료 위치") 또는 slice("시작 위치")

  • slice() 함수는 기본적인 사용법은 substring()함수와 동일하며, 다른 점은 음수(-)를 자유롭게 사용할 수 있어서 뒤에서 부터 문자열을 자를 때 유용하게 사용할 수 있다.

slice()함수는 문자열을 뒤에서부터 자르는 p.slice(-4) 뒤에서 4번째 자리부터 끝까지 문자열을 자르라는 의미이다.

profile
ur gonna figure it out. just like always have.

0개의 댓글