- 문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
- 풀이 과정
- 주어진 문자열을 하나하나 확인하여 문자인지 숫자인 구분해보려 했다. 하지만 결과는 매번 실패했다.
let s = "a234"
let a = s.split("").map(Number);
console.log(typeof a[0] == "number");
- 위처럼 배열을 숫자화 시켰지만 a[0] = NaN 라 타입이 숫자로 나온다. 이게 해결이 안 돼 시간이 많이 걸렸다.
- 검색을 통해 힌트를 얻었고, 문자열에 숫자만 있다면 정수화를 시켜주고, 그 때 정수화가 되는지 안되는지를 보고, 문제를 해결하면 된다.
- 아래 코드가 완성 된 코드이다.
function solution(s) {
let a = parseInt(s);
if ( (s.length == 4 || s.length == 6) && s == a) {
a = true ;
} else {
a = false;
}
return a;
}