function solution(s) {
const answer = s.length === 4 || s.length === 6 ? !isNaN(s) : false;
return answer;
}
삼항 연산자와 isNaN
함수를 사용해서 간단하게 함수를 작성했는데 테스트 케이스 11번을 통과하지 못했다.
18년도에 작성된 한 풀이에서 위와 같이 작성한 정답을 보았는데 그 사이에 테스트 케이스가 추가되었나보다 🤔
다른 글을 참고해보니 숫자의 소수점 표현이나 지수표현에서 문제가 생기는 것 같다고 한다. 알파벳 e를 포함한 지수표현의 경우 false
를 리턴해야 하는데 숫자로 인식되어 true
를 리턴하기 때문!
function solution(s) {
var answer = s.length === 4 || s.length === 6 ? !isNaN(s) : false;
if (!isNaN(s) && s.includes('e')) answer = false;
return answer;
}
위와 같이 숫자이면서 알파벳 e를 포함하고 있는 경우 false
가 되도록 코드를 추가해주었더니 정답 처리되었다.
https://programmers.co.kr/learn/courses/30/lessons/12918?language=javascript
https://github.com/BeomyeonAndrewKim/js-algorithm/blob/master/Programmers/Level1/Level1.%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EB%8B%A4%EB%A3%A8%EA%B8%B0%20%EA%B8%B0%EB%B3%B8(Number%ED%83%80%EC%9E%85%20%EB%B0%8F%20%EA%B8%B8%EC%9D%B4%20%ED%99%95%EC%9D%B8).md
https://velog.io/@dosanahnchangho/javascript-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%8B%A4%EB%A3%A8%EA%B8%B0-%EA%B8%B0%EB%B3%B8