본문 바로가기

알고리즘

문자열 다루기 기본 - 프로그래머스 level1(JavaScript) - 검토

반응형

 오늘은 문자열 다루기 기본을 풀어보겠습니다.

 

문제는 다음과 같습니다.

https://programmers.co.kr/learn/courses/30/lessons/12918

 

코딩테스트 연습 - 문자열 다루기 기본

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

programmers.co.kr

 

풀기 전 지식

이 문제를 풀기 전 isNaN이라는 함수를 공부하였습니다.

isNaN이란 is not a number의 줄임말로, 숫자가 맞는지 아닌지를 판단하는 함수입니다.

 

isNaN(3) // false
isNaN(1e22) // false

 

풀이 방법 

isNaN으로 풀려고 했지만 풀 수 없음을 꺠달았습니다.

위의 예시에서 1e22를 보실 수 있는데 길이가 4이면서 문자입니다. 하지만 e라는 문자가 있음에도 숫자로 인식하기 때문에 원하지 않는 결과가 발생하게 됩니다.

 

결국 저는 길이 조건과 숫자를 판단하는 로직을 따로 분리하여 구현하였습니다.

 

소스 코드

function solution(s) {
    if(s.length !== 4 && s.length !== 6) return false;
    console.log(isNaN(1e22));
    for(let i=0; i<s.length; i++){
        if(s[i] >= '0' && s[i] <= '9')continue;
        else return false;
    }
    return true;
}
반응형