[프로그래머스] Lv1. 문자열 다루기 기본

Ash·2021년 3월 20일
0

알고리즘

목록 보기
9/10

💻 문제

문제설명

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

제한사항

s는 길이 1이상, 길이 8이하인 문자열입니다.

입출력 예

👆풀이방법

문자열이 4글자 또는 6글자인지 검사 후 해당 문자열을 구성하는 요소 중 숫자가 아닌 문자가 있는지 검사하였다.

답안

function solution(s) {
    const len = s.length;
    return (len === 4 || len === 6) && (s.split('').find(ch => isNaN(ch) === true) === undefined);
}

실패한 답안

문자열 전체를 숫자로 변환해서 isNaN함수로 검사하려고했는데 테스트3번에서 실패가 떴다.
다시 생각해보니 parseInt(1.2) => 1 로 변환된다.
해당 문자는 문자열이 "숫자로만" 구성되어있는지를 판단하는 문제이므로 위와 같이 푸는 것이 맞는 답안이다.

function solution(s) {
    const len = s.length;
	return (len === 4 || len === 6) && !isNaN(parseInt(s));
}
profile
기록남기기👩‍💻

0개의 댓글