본문 바로가기
코테

프로그래머스 JavaScript - 문자열 다루기 기본

by 해룸 2024. 1. 26.

문제

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

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

 

문제풀이

function solution(s) {
    var answer = true;
    
    if(typeof s !== Number){
        answer= false
    }else if(s.length !==4 || s.length !== 6){
        answer= false
    } 
    return answer;
}

간단한 문제라 생각하고 처음풀이는 이랬는데 자꾸 테스트결과에서 오류가 났다.

그 이유는 s = "1234" 일때 s의 type은 string 이기 때문이었다.

function solution(s) {
    var answer = true;
    
    if(s.length !==4 && s.length !== 6) return false
    //주어진게 문자로만 이루어졌는지 확인만 하면 됨.
    for(i=0;i<s.length;i++){
        if( isNaN(Number(s[i])) ) return false
    }

    return answer;
}

기본적으로 true를 출력하고 조건과 다를시 false값을 출력하도록 했다. 

number(s[i])로 각 문자열을 숫자로 변환하고 isNaN을 통해 숫자가 아닐시 false를 출력하도록 하니 성공했다.

 

다른풀이

function solution(s) {
    return (s.length === 4 || s.length === 6) && s == parseInt(s)
}

그래 이렇게 간단하게 되는건데 불편한 길을 갔다 

^^