SUIN

알고리즘9_핸드폰 번호 가리기 본문

알고리즘/프로그래머스

알고리즘9_핸드폰 번호 가리기

choi suin 2021. 11. 9. 00:07
728x90

문제 설명

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

제한 조건

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

입출력 예

phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"

 

문제

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

 

 내가 작성한 코드 

function solution(phone_number) {   
    let start = '';
    // 뒷자리 4자리 구하기
    let end= phone_number.slice(-4); 
    // 번호길이의 -4 만큼 * 반복문 
    for(let i=0;i<phone_number.length-4; i++){
        start += '*';
    }
    //* + 뒷자리4자리
    return start+end;
}

 

알게된 내용

0. 배열안의 원소 = element

 

1. .repeat() .slice() 사용해 배열을 반복시켜보자 

.repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.

.slice() 메서드는 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다.

              원본 배열은 바뀌지 않습니다.

unction hide_numbers(s){
  var result = "*".repeat(s.length - 4) + s.slice(-4);
  return result;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " + hide_numbers('01033334444'));

 

2. substring()과 slice() 차이점

let str = "안녕하세요?"

//substring: 원본이 회손됨
let first_char = str.substring(0,1);  	//안 0 < 1
let second_char = str.substring(1, 2); 	// 녕 1 < 2
let last_char = str.substring(str.length-1, str.length); //?

console.log("첫번째 문자 : ", first_char, '<br/>');
console.log("두번째 문자 : ", second_char, '<br/>');
console.log("마지막 문자 : ", last_char, '<br/>');

//-----------------------------------------------------

//slice: 원본이 회손되지 않음 
let first_char = str.slice(0, 1);  	//안 0 < 1
let second_char = str.slice(1, 2); 	//녕 0 < 1
let last_char = str.slice(str.length-1, str.length); //?

console.log("첫번째 문자 : ", first_char, '<br/>');
console.log("두번째 문자 : ", second_char, '<br/>');
console.log("마지막 문자 : ", last_char, '<br/>');

//-----------------------------------------------------

//substring: 시작값이 끝값보다 클경우 (start>end)=>start 값과 end 값을 바꾸어서 처리 
let slice = str.slice(1, 0);  //' '  1 < 0 
let substring = str.substring(1, 0); //안  0 < 1 

document.write("slice(1,0) : ", slice, '<br/>'); 
document.write("substring(1,0) : ", substring, '<br/>');