codingTest2

youngsung·2023년 2월 16일
0

TIL

목록 보기
3/5

오늘 여러 문제를 풀었는데 그중 제일 기억에 남는 문제는 이문제 였다.

// 문제 설명
// 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

// 제한 사항
// s는 길이 1 이상, 길이 8 이하인 문자열입니다.
// s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

// 입출력     예
// s	      return
// "a234"  	false
// "1234"	  true
// 조건 : 길이가 4~6, 숫자로만 구성

isNaN()이 메서드를 사용해서 만들었다.

function solution(s) {
    var answer;
    if(s.length === 4 || s.length === 6){
        if(isNaN(s)){ 
            answer = false;
        } else {
            answer = true; 
        }
    } else {
        answer = false;
    }
    
    return answer;
}

이런식으로 만들었는데 통과가 안되는것이다..! 무엇이 문제인가 해서 구글링을 통해 알아보니... javascript는 숫자 사이에 e가 있으면 지수로 본다고한다.. 이런,,결국 고민고민끝에 완성을 했다..

solution("1e24")
function solution(s) {
  if(s.length !== 4 || s.length !== 6) return false;
  for (let i = 0; i < s.length; i++) {
    if(isNaN(Number(s[i]))) return false;
  }
  return true;
}

문제점을 찾지못해 고생한 시간들이 너무 크다.. 그로인해 알게된것도 크다..!

profile
To Infinity and Beyond

0개의 댓글