Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[JavaScript] 프로그래머스 코딩테스트 레벨 1 : 문자열 다루기 기본 본문

⚙️ 코딩테스트

[JavaScript] 프로그래머스 코딩테스트 레벨 1 : 문자열 다루기 기본

썸머몽 2023. 4. 10. 01:30
728x90

문제 및 제한사항

 

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

 

**제한사항**

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

s 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

 

풀이 방법

 

먼저 길이가 4 또는 6일 때, 문자열 s를 순회하여 문자가 발견된다면 바로 false를 반환시켜준다.

for문을 통해 문자열을 전부 순회하였는데도 문자가 발견되지 않는다면 true를 반환한다.

가장 큰 전제였던 길이가 4 또는 6인 if문의 반대인 경우에도 false를 반환한다.

 

다른 분이 정규식으로 푸신 풀이가 있어 가져왔다.

function alpha_string46(s){
    var regex = /^\d{6}$|^\d{4}$/;

  return regex.test(s);
}

 

정규식에서 test 메서드는 일치할 경우 true, 아니면 false를 반환한다.

저 정규식은 숫자로만 6자리거나 4자리인 경우를 말한다.

test라는 매서드는 처음 봤는데 매우 매우 간편해보인다. ^_ㅠ...

 

코드

function solution(s) {
  if (s.length === 4 || s.length === 6) {
    for (let i = 0; i < s.length; i++) {
      if (isNaN(s[i])) {
        return false;
      }
    }
    return true;
  }
  return false;
}
728x90