최대 1 분 소요

문제

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

입출력 예시

s return
"a234" false
"1234" true

문제풀이

1. 삼항연산자 & isNaN

function solution(s) {
    return(s.length === 4 || s.length === 6 && isNaN(s) === false ? true : false)
}

isNaN(value)? value가 숫자가 아니면 true, 숫자이면 false를 반환한다.

삼항연산자와 isNaN을 사용해서 작성했는데, 문제 11번에서 막혔다.
그 이유는 지수형식(“1e22”)를 넣었을 때 문제가 되기 때문이다.

2. 조건을 더 많이 줘서 풀기

function solution(s) {
  if( !(s.length === 4 || s.length === 6)) {
    return false
  } else {
    const splitS = s.split("");
    for(let i = 0 ; i < splitS.length ; i++ ) {
      if(isNaN(splitS[i]) === true){
        return false
      }
    }
  }
    return true
}

1) s의 문자열 길이가 4이거나 6이 아닐 때, false
2) s의 길이가 4이거나 6일 때, 만약 그 안의 contents가 숫자가 아닐 때, false
3) s의 길이가 4이나 6이고 contents가 숫자일 때, true

댓글남기기