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

드한승훈·2020년 8월 23일
1

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

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수,

solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.

문제 출처

1차 시도

function solution(s) {
	const len = s.length;
	
	if (len === 4 || len === 6) {
		return !isNaN(n);
	}

	return false;
}

처음에 위처럼 풀었는데 테스트 케이스 11번 에서 걸리더라구요.

아마 소수점 표현 "0.01" 이나 "1e22" 같은 지수 표현이 문제가 생기는거 같아요.

뭐 문제 자체가 좋은 문제는 아니였던거 같습니다^^

추가로 정규표현식으로 푸는 분들이 많으실텐데 개인적으로는

아무리 코드가 짧아진다고 하더라고 정규 표현식을 사용하는건 지양합니다.

이유는 간단하게 말하면 가독성때문인데요.

코드는 최대한 누구라도 알아보기 쉽게 만드는걸 지향하고 논리적으로 읽혀야 되는데 정규표현식은 그렇지 못하기때문이죠

최종 풀이

function solution(s) {
	const len = s.length

	if(len === 4 || len === 6){
		return s.split("").every((c)=>!isNaN(c))
	}

	return false
}
profile
프론트 엔드 개발자

1개의 댓글

comment-user-thumbnail
2021년 11월 9일

안녕하세요! 프로그래머스에서 문자열 다루기 기본에서 코딩테스트하다가 11번에서 자꾸 막히는 바람에

풀이 까지 왔는데 우연히 풀이 하시는 걸 발견해서 여쭤뵐게 있어서 댓글을 남깁니다!

s.split("").every((c)=>!isNaN(c)) 이 부분에서

s.split("").every((c) 이 부분이 궁금해서 설명해주실 수 있을까 해서 왔습니다!

답글 달기