문제
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
- 제한 사항
s
는 길이 1 이상, 길이 8 이하인 문자열입니다.
나의 풀이
function solution(s) {
// 문자열 길이 == 4 or 6 확인
if (s.length == 4 || s.length == 6) {
for(let v of s) { // 요소 모두 숫자인지 확인
if(isNaN(v) == true) return false;
} return true;
} return false;
}
- 정확도 테스트 결과
다른 풀이
- 제일 간단한 풀이
function alpha_string46(s) { return s.length == 4 || s.length == 6 ? !isNaN(s) : false }
s가"1e22"
같은 지수형식이나 16진법수가 들어가면 예외가 발생한다.
완벽한 코드는 아니다.
- 정규식 활용 코드
function solution(s) { return /^[0-9]+$/.test(s) && [4,6].includes(s.length); }
(s.length === 4 || s.length === 6)
대신 includes로 짧게 줄일 수 있다는 것을 알아간다.
'Coding test' 카테고리의 다른 글
[프로그래머스] 시저 암호 (Level 1) (0) | 2022.04.14 |
---|---|
[프로그래머스] 소수 찾기 (Level1) (0) | 2022.04.11 |
[프로그래머스] 문자열 내림차순으로 배치하기 (Level 1) (0) | 2022.04.06 |
[프로그래머스] 문자열 내 p와 y의 개수 (Level 1) (0) | 2022.04.05 |
[프로그래머스] 두 정수 사이의 합 (Level 1) (0) | 2022.04.02 |