[프로그래머스] 문자열 다루기 기본 (JavaScript)

구미·2021년 6월 26일
0

알고리즘

목록 보기
10/25

1차 시도

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

profile
디지털 노마드를 꿈꾸며! 🦄 🌈

0개의 댓글