[프로그래머스]JAVASCRIPT- 15

김윤지·2022년 8월 20일
0

JAVASCRIPT

목록 보기
16/25

내가 생각한 풀이 방법
입력된 전화번호의 뒷자리 4자리만 제외하고 전부 "*" 로 변환하기!

내 코드

function solution(phone_number) {
    let answer = '';
    let arr = [...phone_number];
    let num = phone_number.length;
    
    for (i=0; i<num; i++) {
        if (i < num-4) {
            arr[i] = "*";
        }
    }
    answer = arr.join('')
    return answer;
}

replace()를 통해 문자열을 바꿔보려했는데 이상하게 안됨
그래서 귀찮지만... 배열로 만들어서 글자를 spread하고 인덱싱으로 찾은 후
배열의 앞자리들을 "*"로 바꾼 후 다시 join(' ')으로 합침!

내가 원하는 방법을 찾았다!!!

나의 문제점!
1) 문자열을 바꿀때 배열처럼 생각해서 접근했었다!!
:replace로 문자열을 바꾸는데, 그 답을 계속 빈 문자열에
넣으려고 시도했었다.

function solution(phone_number) {
    let num = phone_number;
    let result = '';
    
    for (i=0; i<(num.length-4); i++) {
        result = num[i].replace("*");
    }
    
    return result;
}

요즘 계속 배열 문제를 풀었더니, 빈 배열에 값을 넣는 버릇이 생김..
근데 문자열은 배열 처럼 그냥 넣으면 문자가 점점 쌓이는게 아니라,
그냥 문자가 바뀌기만 하는 거였다!!!

function solution(phone_number) {
    let s = phone_number;
    let result = "*".repeat(s.length-4) + s.slice(-4);
    
    return result;
}

그래서 바꾼 코드!!!!
repeat함수랑 slice함수를 사용했다!
왜 다 풀고 제출한 후에 생각이 나는걸까~~~

그래도 내가 원하는 방식으로 풀려서 다행이다~~~꺆~

profile
Java, Javascript, python, DB

0개의 댓글