[프로그래머스 Lv1] 문자열 다루기 기본 - (Javascript)

eeeyooon·2023년 12월 20일
0

문자열 다루기 기본

문제 링크

📩 문제 설명

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

제한사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.
  • s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

입출력 예

sreturn
"a234"false
"1234"true

제출 답안

function solution(s){
    const regex = /[^0-9]/g;
    let filterStrLength = s.replace(regex, "").length;
    return s.length === filterStrLength && (filterStrLength === 4 || filterStrLength === 6);
}

답안 설명

문자열 s가 숫자만 구성되어있는지 확인하기 위해 정규식과 replace를 사용하여 해당 문자열에서 숫자를 제외한 나머지는 빈 문자열로 교체하였다. 만약 s가 숫자로만 구성되어있다면 문자열의 길이 변화는 없었을 것이므로, 원래 문자열인 s와 숫자필터링한 문자열의 길이가 같은지 비교를 하였고 길이가 같을 경우(숫자로만 구성되어있는 경우) 그 문자열의 길이가 4나 6일 때만 true를 리턴하도록 하였다.

처음에는 filter를 사용해서 Number 타입의 요소만 걸러내려고 했는데, 테스트 과정에서 에러가 나왔다. 알고보니 Numbere일 때도 숫자로 생각해서 지수로 변환시킨다고 한다.


0개의 댓글