JAVA SCRIPT/코딩테스트

프로그래머스 :: 문자열 다루기 기본 (JS)

ㅈㅣㄴ 2023. 12. 7. 11:13
프로그래머스 :: 문자열 다루기 기본 (JS)

 

 

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

 

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

 

입출력 예

s return
"a234" false
"1234" true

 


 

문제 풀이
function solution(s) {
  if (String(s).length === 4 || String(s).length === 6) {
    for (let i = 0; i < String(s).length; i++){
      if (isNaN(String(s)[i])){
        return false;
      } 
    }
    return true;
  } return false;
}

 

  • 처음에 문제를 풀었을 때, 16진수 인식으로 인한 오류가 발생하였다.
  • for 문을 사용하여 각 자릿수 하나하나 isNaN 으로 숫자인지 아닌지 판별 하는 방식으로 풀이했다.
  • return 의 위치가 중요한 것 같다.

 

다른 사람의 문제 풀이
function alpha_string46(s){
    var regex = /^\d{6}$|^\d{4}$/;

  return regex.test(s);
}

정규식을 이용한 문제 풀이도 있다...