728x90
반응형
프로그래머스 문제를 풀면서 엄청나게 간단한 문제인데 모든 테스트가 통과되지 않았다.
// 테스트 미통과 코드
function solution(s) {
if ((!isNaN(s) && s.length === 4) || (!isNaN(s) && s.length === 6)) return true;
else return false;
}
그 이유는 바로 지수 표기법(e) 때문이였다.
문제는 매우 간단하다. 만약 문자열이 모두 숫자로 구성되어 있다면 true를 리턴하고, 그렇지 않다면 false를 리턴해주면 되었다.
하지만, 여기서 문제점은 문자열이 "3e10"처럼 지수 표기법으로 표현되었을 경우이다.
대개 프로그래밍 언어에서 실수를 표기할 때 지수 표기법을 지원한다. 예를 들어 5e3은 5 * 1000을, -4.01e-2는 -0.0401을 의미한다.
결론적으로, 문자열 안에 숫자가 아닌 문자가 있어도 지수 표기법으로 읽을 수 있다면 이는 숫자로 판별해야 한다.
그럼 문제로 돌아와서, 문자열이 e를 포함하고 있는 경우 예외 처리를 해주면 모든 테스트 통과가 가능하다.
// 테스트 통과 코드
function solution(s) {
// e가 포함된 경우 예외처리하기
if (s.includes('e')) return false;
if ((!isNaN(s) && s.length === 4) || (!isNaN(s) && s.length === 6)) return true;
else return false;
}
참고자료
질문이나 잘못된 점은 댓글로 남겨주세요 :)💖
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/더 맵게] - JS로 힙 직접 구현해보기 (0) | 2023.08.08 |
---|---|
[프로그래머스/JS] Lv2. 배달 (0) | 2023.03.31 |
[프로그래머스] Lv2. 행렬의 곱셈 (0) | 2023.03.29 |
[프로그래머스] Lv2. 땅따먹기 (0) | 2023.03.28 |
[프로그래머스] Lv2. 구명보트 (2) | 2023.03.22 |
댓글