[프로그래머스 lv.1] 문자열 다루기 기본 by JS

✉ Question

🔗 문제링크

문제 설명

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

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.


💌 Answer

  1. 0부터 9까지의 정수 중에 일치한다면 숫자, 아니면 문자로 판단
function solution(s) {
    let answer = true;

    if(s.length === 4 || s.length === 6) {
        for(let i = 0; i < s.length; i++) {
            for(let j = 0; j <= 9; j++) {
                 if(s[i] == j) {
                     answer = true;
                     break;
                 }
                 answer = false;
            }
            if(answer === false) return answer;
        }
    }else {
        answer = false;
    }
    
    return answer;
}

  1. 문자 -> 숫자로 형변환한 값을 비교했을 때 문자 값과 다른 경우 (문자일 때 NaN)
function solution(s) {
    let answer = true;

    if(s.length === 4 || s.length === 6) {
        for(let i = 0; i < s.length; i++) {
            if(Number(s[i]) != s[i]) {
                answer = false;
                break;
            }
        }
    }else {
        answer = false;
    }
    
    return answer;
}

  1. char를 추출하여 정수(0~9)의 아스키코드와 다를 경우 문자로 판단
    (이 방법이 현재로서는 가장 효율적이고 안정적인 방법인 것 같다.)
function solution(s) {
    let answer = true;

    if(s.length === 4 || s.length === 6) {
        for(let i = 0; i < s.length; i++) {
            if(Number(s[i]) != s[i]) {
                answer = false;
                break;
            }
        }
    }else {
        answer = false;
    }
    
    return answer;
}

좋은 웹페이지 즐겨찾기