728x90
문제설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
CODE
function solution(s) {
let answer = true
// true와 false 중 하나를 리턴해야 해서 넣어놈.
// if ((s.length === 4 || s.length === 6) && !isNaN(s))
// "1e22" 같은 지수 형식으로 숫자로 읽어버려서 테스트 11번만 통과 못함.
if ((s.length === 4 || s.length === 6) && s.split("").every((c)=>!isNaN(c))){
// 해석을 해보면 s의 길이가 4와 일치하거나(or) s의 길이가 6과 일치하게 되고
// solution의 매개변수 S에 문자열을 .split을 사용해서 구분자를 ""로 한다면 문자 하나하나가 인덱스로 처리된다. ex) 서울 = "서","울"
// 그 후 .every()를 활용해서 배열의 모든 요소를 조건에 맞는지 검사하여 지수 형식 "1e22"같은 것을 검사해주고
//.every의 소괄호 안에 화살표 함수를 사용해서 매개변수 (c) 를 !isNaN(c)의 화살표 함수를 써줬다.
// isNaN은 매개변수로 받은 값이 NaN인지 확인해서 Boolean(true / false) 값을 반환 하는 메서드임.
// !(not)isNaN(s)를 사용해서 숫자로 변환시켜주기 위해 사용해서 answer의 값이 true로 반환 시켜주게함.
answer = true
} else {
answer = false
// 그렇지 않으면 answer변수에 false라는 반환값을 리턴시켜주게 했다.
}
return answer
}
// 테스트는 통과, 제출은 실패
function solution(s) {
let answer = false;
if (s != parseInt(s)) return false
if (s.length == 4 || s.length == 6)
if(!isNaN(s)) answer = true
return answer
}
728x90
'IT > Algorithm' 카테고리의 다른 글
수박수박수박수박수박수? (0) | 2021.11.13 |
---|---|
서울에서 김서방 찾기 (0) | 2021.11.13 |
문자열 내 p와 y의 개수 (0) | 2021.11.13 |
내적 (0) | 2021.11.13 |
나누어 떨어지는 숫자 배열 (0) | 2021.11.11 |