프론트엔드 개발자의 기록 공간

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

알고리즘_JS/프로그래머스_Level1

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

[리우] 2021. 7. 13. 23:01

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

 

문제 설명 : 생략

 

function solution(s) {
    
    var answer = false;
    //문자열이 있으면 false이기 때문에 정규표현식을 이용한다.
    //문자열 추출
    let reg = s.match(/\D/g);
    
    //reg가 null이라면 해당 s는 숫자로 이루어져있다.
    if((s.length === 4 || s.length === 6) && reg === null) answer = true;
    
    return answer;
}

코드 설명 : 처음에는 문자열의 길이가 숫자로만 구성돼있는지 확인하기 위해 isNaN이라는 메소드를 사용했다.

isNaN() 메소드는 Not-A-Number(숫자가 아님)을 나타낸다. 즉 숫자로만 이루어져있다면 false를 반환하고 숫자가 아닌 문자가 섞여있다면 true를 반환한다.

 

그래서 isNaN()메소드를 사용하여 false가 된다면 숫자로만 구성되어있는지 판별이 가능하다. 그 후, 문자열 길이를 통해 처리를 해주었는데 테스트케이스 11번에서 오류가 나서 질문게시판을 참조했다. 11번테스트 케이스는 "1e22"와 같은 문자열 형식인 것을 알 수 있다. isNaN으로 판볈기 e는 지수표기법을 의미하여 이 또한 숫자로 인식해서 틀린것이였다.

 

그래서 새롭게 다른 방법으로 해결했다.

정규표현식을 통해 문자열만 추출해서 존재하면 false, 존재하지않고 문자열 길이가 4또는 6이면 true를 반환하게 하여

해결해주었다.

항상 예외케이스와 메소드를 정확히 알고 사용해야한다!

728x90
Comments