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

이얀·2021년 10월 29일
0

알고리즘

목록 보기
7/22

문제 설명

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

제한 조건

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

풀이 - 오답

const solution = s => !isNaN(Number(s)) && (s.length === 4 || s.length === 6)

설명

isNaN을 이용해 난수인지 체크, 문자열의 길이가 4나 6인지를 체크해서 return 해주었더니 테스트 11에서만 자꾸 실패가 나왔다. 이유는 공백처리나 소수점 같은 경우를 고려하지 않았기 때문인것 같다.

풀이

const solution = s => {
  const arr = s.split('').sort();
  const leng = arr.length
  return !isNaN(Number(arr[leng-1])) && (leng === 4 || leng === 6)
}

설명

이번에는 sort()를 이용해 주어진 문자열을 정렬했다. 정렬은 숫자 -> 문자 순으로 되는데, 입력값에 숫자가 아닌 문자가 섞여있다면 arr 배열의 가장 마지막 인덱스 요소가 난수일 것이다.

0개의 댓글