알고리즘

프로그래머스 Level 1 - 문자열 다루기 기본(Javascript)

또롱또 2022. 5. 14. 09:16
728x90

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

function solution(s) {
    var answer = true;
    // 받아온 문자를 숫자로 형변환
    let a = Number(s);
    
    // 검사, 길이가 4 나 6일경우
    if(s.length === 4 || s.length === 6)
        // a가 숫자인지 체크
        return !isNaN(a) ;
    
    return false;
    
}

처음에 시도한 방법이다. 자꾸 11번에서 막히는데 이유는 모르겠다.

그래서 다른시도를 해보기로 했다

function solution(s) {
    var answer = true;
    // 문자열을 쪼개서 임시로 넣어줄 변수
    let splitResult;

    // 검사, 길이가 4 나 6일경우
    if(s.length === 4 || s.length === 6){
        // split("") - 문자열을 하나하나 쪼갠다음 배열로 정렬
        splitResult = s.split("") 
        // every() - 배열안의 요소가 판별함수를 통과하는지 체크
        // 여기서는 value가 숫자가 아닌게 아니면, 즉 숫자이면 true 보내준다.
        return answer = splitResult.every((value)=>(!isNaN(value)))
    }

    // 기본값 false
    return false;
    
}

그래서 이렇게 문자열을 하나하나 쪼개서 배열로 만들고 - split()

배열안의 요소가 !isNan(요소)에 맞는지 아닌지를 체크 - every()

 

정답코드는 정규식이다.

function alpha_string46(s){
  var regex = /^\d{6}$|^\d{4}$/;
  return regex.test(s);
}
728x90