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

eeeyooon·2023년 12월 20일

문자열 다루기 기본

문제 링크

📩 문제 설명

문자열 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 타입의 요소만 걸러내려고 했는데, 테스트 과정에서 에러가 나왔다. 알고보니 Number는 e일 때도 숫자로 생각해서 지수로 변환시킨다고 한다.


0개의 댓글