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
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 레벨 1 : 3진법 뒤집기 (0) | 2023.04.10 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 레벨 1 : 약수의 개수와 덧셈 (0) | 2023.04.10 |
[JavaScript] 프로그래머스 코딩테스트 레벨 1 : 직사각형 별찍기 (0) | 2023.04.10 |
[JavaScript] 프로그래머스 코딩테스트 레벨 1 : 부족한 금액 계산하기 (0) | 2023.04.10 |
[JavaScript] 프로그래머스 코딩테스트 레벨 1 : 같은 숫자는 싫어 (0) | 2023.04.10 |