Coding test

[프로그래머스] 문자열 다루기 기본 (Level 1)

Jiwoo 2022. 4. 6. 18:10

문제

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

  • 제한 사항
    s는 길이 1 이상, 길이 8 이하인 문자열입니다.
     

나의 풀이

function solution(s) {
    // 문자열 길이 == 4 or 6 확인
    if (s.length == 4 || s.length == 6) {
        for(let v of s) { // 요소 모두 숫자인지 확인
            if(isNaN(v) == true) return false; 
        } return true;
    } return false;
}

 

  • 정확도 테스트 결과

     

다른 풀이

  1. 제일 간단한 풀이
    function alpha_string46(s) {
     return s.length == 4 || s.length == 6 ? !isNaN(s) : false 
    }
     
    s가 "1e22" 같은 지수형식이나 16진법수가 들어가면 예외가 발생한다.
    완벽한 코드는 아니다.
     
  2. 정규식 활용 코드
    function solution(s) {
     return /^[0-9]+$/.test(s) && [4,6].includes(s.length);
    }
     
    (s.length === 4 || s.length === 6) 대신 includes로 짧게 줄일 수 있다는 것을 알아간다.