Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- react 프로젝트 리팩토링
- 투포인터알고리즘 js
- 모던 자바스크립트 Deep Dive
- 프로그래머스 데브코스 프론트엔드 TIL
- 개발자 특강
- 우테캠 회고록
- 리팩토링 회고
- 모던 자바스크립트 TIL
- 프로그래머스 데브코스
- TypeScript 문법 소개
- 머쓱이
- 프로그래머스 K_Digital Training 프론트엔드
- 백준 node.js
- 모던 자바스크립트 Deep Dive TIL
- 프로그래머스 K_Digital Training
- 모던 자바스크립트 딥다이브
- K_Digital Training
- Vue3
- Vue3 Router
- KDT 프로그래머스 데브코스 프론트엔드
- react customHook 예시
- useEffect return
- 프로그래머스 데브코스 프론트엔드
- 백준 js
- KDT 프로그래머스
- Frontend Roadmap
- 모던 javascript Deep Dive
- useRef 지역 변수
- frontend roadmap study
- 인프런 자바스크립트 알고리즘 문제풀이
Archives
- Today
- Total
프론트엔드 개발자의 기록 공간
[프로그래머스 JavaScript] 문자열 다루기 기본 본문
프로그래머스 Level1 문자열 다루기 기본
문제 설명 : 생략
function solution(s) {
var answer = false;
//문자열이 있으면 false이기 때문에 정규표현식을 이용한다.
//문자열 추출
let reg = s.match(/\D/g);
//reg가 null이라면 해당 s는 숫자로 이루어져있다.
if((s.length === 4 || s.length === 6) && reg === null) answer = true;
return answer;
}
코드 설명 : 처음에는 문자열의 길이가 숫자로만 구성돼있는지 확인하기 위해 isNaN이라는 메소드를 사용했다.
isNaN() 메소드는 Not-A-Number(숫자가 아님)을 나타낸다. 즉 숫자로만 이루어져있다면 false를 반환하고 숫자가 아닌 문자가 섞여있다면 true를 반환한다.
그래서 isNaN()메소드를 사용하여 false가 된다면 숫자로만 구성되어있는지 판별이 가능하다. 그 후, 문자열 길이를 통해 처리를 해주었는데 테스트케이스 11번에서 오류가 나서 질문게시판을 참조했다. 11번테스트 케이스는 "1e22"와 같은 문자열 형식인 것을 알 수 있다. isNaN으로 판볈기 e는 지수표기법을 의미하여 이 또한 숫자로 인식해서 틀린것이였다.
그래서 새롭게 다른 방법으로 해결했다.
정규표현식을 통해 문자열만 추출해서 존재하면 false, 존재하지않고 문자열 길이가 4또는 6이면 true를 반환하게 하여
해결해주었다.
항상 예외케이스와 메소드를 정확히 알고 사용해야한다!
728x90
'알고리즘_JS > 프로그래머스_Level1' 카테고리의 다른 글
[프로그래머스 JavaScript] 소수 찾기 (0) | 2021.07.14 |
---|---|
[프로그래머스 JavaScript] 서울에서 김서방 찾기 (0) | 2021.07.14 |
[프로그래머스 JavaScript] 문자열 내림차순으로 배치하기 (0) | 2021.07.13 |
[프로그래머스 JavaScript] 문자열 내 p와 y의 개수 (0) | 2021.07.13 |
[프로그래머스 JavaScript] 문자열 내 마음대로 정렬하기 (0) | 2021.07.13 |
Comments