문제
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
s | return |
"a234" | false |
"1234" | true |
문제풀이
function solution(s) {
var answer = true;
if(typeof s !== Number){
answer= false
}else if(s.length !==4 || s.length !== 6){
answer= false
}
return answer;
}
간단한 문제라 생각하고 처음풀이는 이랬는데 자꾸 테스트결과에서 오류가 났다.
그 이유는 s = "1234" 일때 s의 type은 string 이기 때문이었다.
function solution(s) {
var answer = true;
if(s.length !==4 && s.length !== 6) return false
//주어진게 문자로만 이루어졌는지 확인만 하면 됨.
for(i=0;i<s.length;i++){
if( isNaN(Number(s[i])) ) return false
}
return answer;
}
기본적으로 true를 출력하고 조건과 다를시 false값을 출력하도록 했다.
number(s[i])로 각 문자열을 숫자로 변환하고 isNaN을 통해 숫자가 아닐시 false를 출력하도록 하니 성공했다.
다른풀이
function solution(s) {
return (s.length === 4 || s.length === 6) && s == parseInt(s)
}
그래 이렇게 간단하게 되는건데 불편한 길을 갔다
^^
'코테' 카테고리의 다른 글
자바스크립트 코테 핵심로직(2) 탐색 알고리즘 중 DFS를 공부해보자 (0) | 2024.01.30 |
---|---|
자바스크립트 코딩테스트 핵심로직(1) (0) | 2024.01.30 |
프로그래머스 JavaScript - 약수의 개수와 덧셈 (0) | 2024.01.25 |
프로그래머스 JavaScript - 제일 작은 수 제거하기 (0) | 2024.01.19 |
프로그래머스 Javascript - 나누어 떨어지는 숫자 배열, sort의 속성 (0) | 2024.01.15 |