일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react 프로젝트 리팩토링
- 모던 javascript Deep Dive
- 프로그래머스 데브코스 프론트엔드
- 모던 자바스크립트 딥다이브
- 프로그래머스 K_Digital Training
- 모던 자바스크립트 TIL
- 프로그래머스 데브코스
- Frontend Roadmap
- frontend roadmap study
- 우테캠 회고록
- 모던 자바스크립트 Deep Dive
- Vue3
- 인프런 자바스크립트 알고리즘 문제풀이
- 모던 자바스크립트 Deep Dive TIL
- 투포인터알고리즘 js
- useRef 지역 변수
- KDT 프로그래머스
- KDT 프로그래머스 데브코스 프론트엔드
- 프로그래머스 K_Digital Training 프론트엔드
- 프로그래머스 데브코스 프론트엔드 TIL
- useEffect return
- 리팩토링 회고
- 백준 node.js
- Vue3 Router
- 개발자 특강
- 백준 js
- react customHook 예시
- TypeScript 문법 소개
- K_Digital Training
- 머쓱이
- Today
- Total
프론트엔드 개발자의 기록 공간
[프로그래머스 JavaScript] 신규 아이디 추천 본문
프로그래머스 Level1 신규 아이디 추천 문제
문제 풀이 : 친절하게 단계별로 풀으라고 작성이 되어있다. 보면 알듯이 정규표현식을 사용하면 쉽게 해결이 가능한 문제이다. 정규표현식 작성법을 찾아보며 풀었다.
코드 설명 : 1단계 : toLowerCase() 함수를 이용하여 소문자로 치환해줍니다.
2단계 : replace를 이용하여 문자열을으로 치환해줍니다. 치환을 해줘야하는 문자는 조건에서 주어진 문자를 제외한 문자이다. []의미는 []안에 포함된 정규표현식과 일치하면 "" 빈문자열로 치환하면서 없애준다.
[]안에 ^의 의미는 해당 문자를 제외한다는 것이다. 즉, a~z0~9-_. 가 포함되는 문자열을 제외한 문자열을 /g 을 이용하여 문자열 전체에 대해 해당 정규표현식을 제외한 문자를 찾아 "" 로 바꿔줘라 라는 의미가 된다.
3단계 : 정규표현식에서 . 은 어떤문자든 상관없이 1개의 문자자체를 뜻한다. .을 (온점)으로 식별하기위해서는 백슬래시(\) 사용해야한다. 즉 \. 은 .이 포함된 문자열을 찾으란 의미이고 + 는 한개이상이 포함이라는 뜻이다. 즉 .이 한개 이상 포함된 문자열이면 . 한개로 치환하라는 의미이다.
4단계 : 위와 마찬가지이다. [] 밖에서 ^의 의미는 첫번째 문자라는 의미이고, | 는 흔히 알고있듯이 또는 의미고, $는 마지막 문자라는 의미이다. 즉 첫번째 글자나 마지막 글자가 . 이면 ""으로 치환하라는 의미이다.
5단계 : 코드 그대로..
6단계 : substring으로 15글자 이상이면 뒤에 글자를 날린다.
7단계 : 마지막 글자를 3글자가 될때까지 추가해준다.
* 여러 코테를 보면서 치환이나 문자열 탐색이 많이 나오는데 정규표현식을 제대로 알고 사용하면 훨씬 깔끔하고 빠르게 풀 수 있을거 같다. 한번쯤 정규표현식에 대해 공부해보면 좋을것 같다.
추천드리는 영상은 생활코딩 - JavaScript정규표현식 강의 입니다.
https://www.youtube.com/watch?v=5pN3_yGmbrA&t=2s
'알고리즘_JS > 프로그래머스_Level1' 카테고리의 다른 글
[프로그래머스 JavaScript] 모의고사 (0) | 2021.05.22 |
---|---|
[프로그래머스 JavaScript] K번째수 (0) | 2021.05.22 |
[프로그래머스 JavaScript] 완주하지 못한 선수 (0) | 2021.05.20 |
[프로그래머스 JavaScript] 소수 만들기 (0) | 2021.05.08 |
[프로그래머스 JavaScript] 내적 (0) | 2021.05.08 |