핸드폰 번호 가리기
설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의
전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을
때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린
문자열을 리턴하는 함수, solution을 완성해주세요.
제한 사항
phone_number는 길이 4 이상, 20이하인 문자열입니다.
phone_number | return |
---|---|
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
풀이
function solution(phone_number) {
return "*".repeat(phone_number.length-4)+phone_number.slice(-4)
}
해설
이번 문제는 전화번호 암호화 할때 자주쓰이는 알고리즘인거 같습니다.(추측임) repeat메소드를 사용해 "*"을 반복시키는데 phone_number의 배열에서 마지막 4번째 전까지만 반복시킵니다. 그 후에 slice 메서드를 사용해 phone_number의 뒤에서 4번째 배열까지 추출해 더해주면 뒤에 4자리 빼고 번호가 나오도록 완성됩니다!
다른사람 풀이
const solution = n => [...n].fill("*",0,n.length-4).join("")
해설
fill 메소드를 사용한 풀이 입니다. fill은 자주 써본적 없는
메소드인데요
fill은 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로
채우는 메소드 입니다.
arr.fill(value[, start[, end]])가 기본 값으로 위 풀이를 해석해
보자면 [...n]은 문자열 n을 배열로 바꾸고 *로 채운다 0번째 부터
끝에서 4번째 길이까지 입니다. 그후 join 메소드를 사용해 전부
문자열로 바꾸어 출력하면 끝!!
저 배열로 바꾸는 방법은 몰랐습니다.. 계속해서 채워나가야 할 거
같아요! 사실 정규식표현으로 풀이한 풀이를 가져오려고 했는데 해석을
못해서 못가져왔습니다. 다음에는 다른 문제를 정규식을 공부해서
풀어보겠습니다.
'프로그래머스' 카테고리의 다른 글
[programmers]문자열 다루기 기본 (3) | 2022.11.08 |
---|---|
[programmers]정수 내림차순으로 배치하기 (3) | 2022.11.07 |
[programmers]수박수박수박수박수박수? (1) | 2022.11.07 |
[programmers]나누어 떨어지는 숫자 배열 (1) | 2022.11.04 |
[programmers]평균 구하기 (2) | 2022.11.03 |