TIL4: [알고리즘] 문자열 다루기 기본
문제
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 “a234”이면 False를 리턴하고 “1234”라면 True를 리턴하면 됩니다.
입출력 예시
| s | return |
| "a234" | false |
| "1234" | true |
문제풀이
1. 삼항연산자 & isNaN
function solution(s) {
return(s.length === 4 || s.length === 6 && isNaN(s) === false ? true : false)
}
isNaN(value)? value가 숫자가 아니면 true, 숫자이면 false를 반환한다.
삼항연산자와 isNaN을 사용해서 작성했는데, 문제 11번에서 막혔다.
그 이유는 지수형식(“1e22”)를 넣었을 때 문제가 되기 때문이다.
2. 조건을 더 많이 줘서 풀기
function solution(s) {
if( !(s.length === 4 || s.length === 6)) {
return false
} else {
const splitS = s.split("");
for(let i = 0 ; i < splitS.length ; i++ ) {
if(isNaN(splitS[i]) === true){
return false
}
}
}
return true
}
1) s의 문자열 길이가 4이거나 6이 아닐 때, false
2) s의 길이가 4이거나 6일 때, 만약 그 안의 contents가 숫자가 아닐 때, false
3) s의 길이가 4이나 6이고 contents가 숫자일 때, true
댓글남기기