알고리즘, 자료구조/프로그래머스

[프로그래머스/javascript] 문자열 다루기 기본

soohkang 2021. 4. 7. 11:55
728x90

문제

정답 처리된 코드

function solution(s) {
    var answer = false;
    var regex = /^[0-9]*$/;
    if((s.length === 4 || s.length === 6) && (regex.test(s))){
        answer = true;
    }
    return answer;
}

문제 이해

1) 길이가 4 또는 6이고 숫자로만 되어있는지 확인되면 true 처리한다.

2) 나머지는 모두 false

3) 정규 표현식이 유용하다.

 


정규 표현식

위 문제에서 사용된 정규표현식을 집고 넘어가보자.

 

/^[0-9]*$/

1) / 기호는 시작과 종료를 의미한다.

2)  ^ 라인의 시작 지점을 뜻 함 ( 어디선가 ^는 부정을 뜻하기도 한다고 했던거 같은데... 좀더 찾아보기로...)

3) [] 내에 - 를 사용해서 범위를 지정한다. [0-9] 0에서 9사이의 숫자를 의미

4) * 0회 이상 연속으로 반복되는 문자와 가능한 많이 일치할 때를 의미합니다.

5) $ 는 문자열의 끝을 의미한다.

 

0에서 9범위내의 모든 문자열 찾을 때 사용하면 좋을 듯

정규 표현식 추가 학습이 매우 필요함.

 

 

출처: programmers.co.kr/learn/courses/30/lessons/12918?language=javascript

 

코딩테스트 연습 - 문자열 다루기 기본

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

programmers.co.kr