관리 메뉴

공부기록용

프로그래머스(LV 1. 문자열 다루기 기본) 본문

✍️문제풀기✍️/JS_Programmers school

프로그래머스(LV 1. 문자열 다루기 기본)

과부하가즈아 2023. 6. 19. 13:48

LV 1. 문자열 다루기 기본

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명

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

제한 사항
  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.
  • s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

입출력 예

  • s = "a234"
  • return = false
<해결>
isNaN( ): 매개변수가 숫자인지 검사하는 함수입니다. 숫자가 아니면 true, 숫자이면 false를 반환합니다.(NaN은 Not a Number) 
function solution(s) {

    if (s.length !== 4 && s.length !== 6) {
        return false;
    }

    for (let i = 0; i < s.length; i++) {
        if (isNaN(s[i])) return false;
    }


    return true;
}
console.log(solution("a234"))

function solution(s) {
    if (s.length === 4 || s.length === 6) {
      return s.split("").every((e) => isNaN(+e) === false);
    } else {
      return false;
    }
  }
// 정규표현식

// 1.
function solution(s) {
    return s.length === 4 || s.length === 6
        ? /[a-zA-Z]/.test(s)
            ? false
            : true
        : false;
}

// 2.
function solution(s) {
    let regex = /^\d{6}$|^\d{4}$/;
    return regex.test(s);
}
Comments