본문 바로가기
알고리즘

[Programmars] 핸드폰 번호 가리기 (JavaScript)

by 프린벼르 2022. 2. 3.

핸드폰 번호 가리기 문제

1. 나의 생각 흐름

뒤에 4자리를 제외한 부분은 *로 채워넣어야 하는 문제였다. 어떻게 해야 뒤에 4자리를 제외한 부분을 *로 채울 수 있을지에 대해 고민한 끝에 substr을 이용하기로했다. 왜냐하면 substring이 아닌 substr은 길이값을 이용해서 처리할 수 있기에 더 간단하다고 생각되었기 때문이다.

2. 내 코드 정리

function solution(phone_number) {
    let answer = '';
    let phone = phone_number.length;
    let star = phone_number.substr(phone - 4);
    for(let i = 0; i < phone-4; i++){
        answer += '*';
    }
    return answer + star;
}

substr을 이용해서 문제를 해결했다. 더 간단하게도 짤 수 있을 것 같지만.. 그건 차후에 해봐야겠다!

substr( )  :문자열에서 특정한 구간의 문자열을 추출

문자열.substr(start, length)

1. length값은 가져올 길이값이며, "생략가능"하다.

2. 두번째 매개변수인 length값이 음수값일 경우 빈 값을 반환한다. 

    (length값이 음수라면 가져올 길이값이 마이너스이므로 당연히 빈값을 반환)

substr 인자 설명

1. 문자열 중 첫번째 인자(start)에서부터 두번째 인자(length)까지의 구간에 해당하는 문자열을 반환한다. 
2. length를 지정하지 않으면 start에서부터 문자열 전체를 처리구간으로 간주한다. 
3. start가 양수일 경우, 문자의 길이 보다 작으면 빈문자열이 리턴된다. 
4. start가 음수일 경우, start의 index는 문자열의 뒤에서부터 시작된다.

substirng() : 문자열에서 특정한 구간의 문자열을 추출

문자열.subString(start, End)
string.substring(from,to)
1. 시작 인덱스부터 End 바로 앞까지 반환.
2. End값은 생략가능 (시작부터 끝까지)
3. start값이 End값보다 크다면 작은 숫자가 시작위치로 / 큰숫자가 종료위치로 셋팅된다.
4. 매개변수 둘 중에 한개값이 음수값이라면 시작위치가 0으로 설정된다.
5. 매개변수가 둘다 음수값이라면 반환값이 무조건 없다.

substring 인자 설명


3. 다른 사람들의 코드

function hide_numbers(s){
  var result = "*".repeat(s.length - 4) + s.slice(-4);
  return result;
}

요즘의 경향

이 댓글을 보고 나니까 ⭐️slice⭐️에 대해서도 공부를 해야겠다❗️❗️❗️

4. 결론

slice랑 substring에 대해서 좀 더 공부하고 이 두개를 가지고 문제를 한번 푸는 시간을 가져봐야겠다.

댓글