[Node.js_6기 사전캠프] Today I Learned _0717

2024. 7. 17. 17:55[Node.js_6기 사전캠프]

핸드폰 번호 가리기 (JavaScript)

DB를 관리하다 보면 자주 접할 수 있는 핸드폰 번호 가리기.

하샤드 수, 콜라츠 추측 같은 수식부터 이해해야 하는 문제만 보다가 익숙한 기능을 보니 반갑기까지 했다.

https://school.programmers.co.kr/learn/courses/30/lessons/12948

 

 

 

전화번호 예시를 보아하니, 사무실 번호와 핸드폰 번호가 혼재되어 있다.

이는 곧, 자릿수가 다른 데이터들이 누적되어 있음을 주의해야 한다는 말.

자주 쓰던 FOR문을 사용해서 뒤의 4자리를 제외한 나머지 숫자에 * 을 밀어넣으면 될 것 같았다.

 

▶풀이

function solution(phone_number) {
     var answer = "";
         for(let i=0; i<phone_number.length-4; i++)
// for를 사용해서 phone_number의 전체 길이 중, 뒤의 4자리만 빼고 반복하는 조건을 걸어준다.
 answer += '*';
//조건에 해당하는 자릿수 만큼 특수문자를 밀어넣어준다.
}
    return answer+phone_number.slice(-4)
//뒤의 4자리를 제외하고 블러 처리된 전화번호, answer에 살려둔 뒷 4자리를 붙여준다.
         }

 

FOR문에서 answer를 지정하는 게 매번 어렵게 느껴진다.  answer +=로 숫자를 더하는 위주로만 사용했더니, 특수문자를 밀어넣는 데에도 사용할 수 있을 줄은 몰랐다. IF나 .push() 를 써야 하는 줄 알고 한참 조합해봤는데, 역시 기본기가 탄탄해야 고생을 덜 한다.

 

.slice()는 본 문제를 풀면서 처음 써봤다. 앞자리를 남기면 LEFT를 써봤을텐데, 뒷자리는 .slice(-n)을 많이 쓰는 것 같다.