프로그래머스 20.10.25

Doyoon Lee·2020년 10월 25일
0

알고리즘

목록 보기
1/1
post-thumbnail

프로그래머스 알고리즘 문제 - 문자열 다루기 기본

문제 설명

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

나의 풀이법

  1. 일단 제시된 제시된 문자열 s의 길이가 4 또는 6인 경우에만 if 문을 통과하게 작성.
  2. 제시된 문자열 s를 Number 화 시켜서 isNaN으로 체크하여 문자인 경우에는 false 를 리턴하게 작성

테스트 11만 계속 통과를 하여서 검색해보니
s = '1e10' 처럼 e 가 들어가는 지수 케이스가 통과가 안되는 것 같았다.
학교에서 수학을 깊게 배우지 않았던 터라 e가 생소해서 검색해보니
자연상수 e 라는게 존재했다.
1e10 과 같은 경우는 Number 생성자를 사용했을 때 10000000000 으로 치환되기 때문에 isNaN 에서 false 가 나오면서 결과가 true 가 되는걸 확인했다.

  • 문자열 s 에 e 가 존재하는 경우에는 !Number.isNaN(check) 를 통과하면 (e 를 제외한 다른 string 이 존재하지 않는다는 것이므로) false 를 리턴하는 if 문을 추가하여 테스트 11을 통과.
function solution(s) {
   if (s.length === 4 || s.length === 6) {
     const check = Number(s);
     if ( s.includes('e') && !Number.isNaN(check)) {
       return false
     }
     if (Number.isNaN(check)) {
       return false;
     }
     else {
     return true;
     }
   }
   else {
   return false;
   }
}

0개의 댓글