[프로그래머스] 문자열 다루기 기본


문제 설명

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


제한사항

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

입출력 예

sreturn
“a234”false
“1234”true

입출력 예 설명

입출력 예 #1

  • -

입출력 예 #2

  • -

나의 풀이

function solution(s) {
  if (s.length !== 4 && s.length !== 6) {
    return false;
  }
  for (i = 0; i < s.length; i++) {
    if (isNaN(s[i])) {
      return false;
    }
  }
  return true;
}

// 한 20번 이상 트라이해서 테스트 통과.
// 왜 삽질했냐를 보면 나는 s 전체의 문자열 테스트를 Number로 판별해서 반환하려고했다
// 원인: 테스트 11번에서 계속 막힘 => 다 풀고 나서 알았지만 "5e3"같은 숫자가 들어가면 "5x1000" 진법 변환이된다
// 결론: Number에서의 'e'는 지수표기법으로 들어갔고 나는 지수 표기법을 간과함
// 1. 첫번째로 문자열 길이가 4와 6이 아닌 건 false로 반환
// 2. 원인을 처음에 몰라서 s의 문자열을 하나씩 쪼개서 false값으로 반환했다