치악산 복숭아

[프로그래머스] 문자열 다루기 기본 - Javascript 본문

PS:0

[프로그래머스] 문자열 다루기 기본 - Javascript

Juliie 2020. 9. 16. 13:02

링크

programmers.co.kr/learn/courses/30/lessons/12918

 

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

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

programmers.co.kr


문제 설명

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


제한 사항

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

문제 풀이

1) 코드 설명

 (1) if문을 이용해서 문자열의 길이가 4, 6인지 검사한다.

 (2) if문을 통과했다면 string을 parseInt 함수를 이용해서 숫자로 바꿔준다.

 (3) 만약 문자가 섞여있다면 문자는 사라지기 때문에 if문을 한번 더 돌려서 검사 해준다. '

 

2) 코드

function solution(s) {
    var answer = false;
    if(s.length == 4) {
        var num = parseInt(s);
        if(num.toString().length == 4) {
            answer = true;
        }
    }
    if(s.length == 6) {
        var num = parseInt(s);
        if(num.toString().length == 6) {
            answer = true;
        }
    }
    return answer;
}

수정한 코드

//210623
function solution(s) {
    const regex = /^\d{4}$/;
    const regex2 = /^\d{6}$/;
    return (regex.test(s) || regex2.test(s));
}

정규식 시도해봤는데 코드가 깔끔해졌다 !

/a|b/ 는 a or b라는데 나도 변수 두개로 안나누고 한번에 /^\d{4}$|^\d{6}$/ 했으면 더 좋았을걸하는 아쉬움이 생긴다

Comments