코딩 테스트

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

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

 

문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

풀이보기
더보기
function solution(s) {
    let isNum = true;
    
    s.split('').forEach((char) => {
        if(char != Number(char)) {
            isNum = false;
        }
    })
    
    return isNum && (s.length === 4 || s.length === 6) ? true : false;
}

나는 한글자씩 순회해서 숫자가 아닌 경우 isNum을 false로 바꾸는 방식을 선택했다.

문자열을 순회하고 난 후 isNum과 문자열의 길이가 충족되면 true, 아니면 false가 되도록 했다.

 

다른 사람들 풀이를 보고 아래와 같이 다시 풀어보았다.

return s.length === 4 || s.length === 6 ? !isNaN(Number(s)) : false;

하지만 위의 코드는 만약 s가 0x16이라면 16진수로 바꾸기 때문에 테스트 케이스를 통과하지 못한다.