프론트엔드 개발자의 기록 공간

[프로그래머스 JavaScript] 신규 아이디 추천 본문

알고리즘_JS/프로그래머스_Level1

[프로그래머스 JavaScript] 신규 아이디 추천

[리우] 2021. 5. 17. 18:50

프로그래머스 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

728x90
Comments