728x90
쉬운 것 부터 풀고 있었는데 여기서 잠시 막혔다.
[문제 설명]
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
[제한 사항]s는 길이 1 이상, 길이 8 이하인 문자열입니다.s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
처음에는 아래처럼 단순하게 4자리와 6자리를 if문으로 판단하고, isNaN으로 삼항연산자를 사용하면 끝일거라 생각했는데, 왠걸 여러 테스트케이스에서 에러가 났다.
function solution(s) {
if (s.length !== 4 && s.length !== 6) { return false }
return isNaN(s)? false:true
}
한시간 고민하다.. 도저히 모르겠어서 다른 풀이를 보니, 지수 표현식의 e를 사용할 경우 숫자로 인식해서 true가 리턴되는 것.
그래서 스프레드 문법으로 e나 E를 검사하는 것을 아래처럼 추가해서 통과했다.
function solution(s) {
if (s.length !== 4 && s.length !== 6) { return false }
if ([...s.toUpperCase()].includes('E')) { return false }
return isNaN(s) ? false : true
}
사소해 보이지만 현업에서도 이런 문제로 에러가 발생하고 디버깅을 한참하는 일이 가끔 있지않을까? 하는 생각을 했다.
'daily' 카테고리의 다른 글
23.04.15. programmers 코딩테스트 문제 풀기[2] (0) | 2023.04.15 |
---|---|
23.04.15. programmers 코딩테스트 문제 풀기[1] (1) | 2023.04.15 |
23, 15주차 (0) | 2023.04.13 |
23.04.10. 실행 컨텍스트 더 알아보기 문제 (0) | 2023.04.12 |
23.04.12. 혼자 공부하는 자바스크립트 확인문제 풀이 기록[1] (0) | 2023.04.12 |