ss 프로그래머스 1단계 : 문자열 다루기 기본
본문 바로가기
알고리즘

프로그래머스 1단계 : 문자열 다루기 기본

by 꿈나무개발 2022. 11. 10.
728x90

알고리즘15

📝 문제 설명

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

👉 제한 사항

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

👉 입출력 예

s return
"a234" false
"1234" true

✌️ 나의 풀이

처음에는 parseInt()를 안쓰고 Number()를 썼는데 코드실행에서는 통과됐지만 제출 했을때는 정확도가 떨어져서 차이점을 찾아봤는데요.
parseInt()는 문자가 섞여있을 때 숫자로 시작하면 숫자를 인식하지만 숫자가 문자 뒤에 있으면 뽑아내지 못합니다. 그리고 소수점 형태로는 가져오지 못하고 정수로만 반환됩니다.
Numbaer()는 문자와 숫자가 섞여있을 때 NaN을 반환하고 소수점 형태 그대로 가져옵니다.
하지만, 제가 Number()를 사용했을 때 틀린 이유는 e를 숫자로 인식했기 때문인데요. e를 숫자로 바꾸면 자연로그의 밑이 되어 지수 표현이 되어 숫자 취급을 한다고 합니다.
function solution(s) {
    return (s.length == 4 || s.length == 6) && s == parseInt(s) 
}

👍 다른 풀이

또 전혀 예상 못한 정규식표현을 이용한 풀이방법입니다.
function alpha_string46(s){
    var regex = /^\d{6}$|^\d{4}$/;
    return regex.test(s);
}
728x90
반응형

댓글


HTML
CSS
JAVASCRIPT

JAVASCRIPT

자세히보기
광고 준비중입니다.