프로그래머스 | 신규 아이디 추천_JS

난이도 : Level. 1
언어 : Javascript
출제 내역 : 2021 KAKAO BLIND RECRUITMENT

❓ Question

카카오에 입사한 '네오'는 유저들의 신규 아이디를 추천해주는 프로그램을 개발합니다
총 7단계를 거쳐서 유저들에게 신규 아이디를 추천해 주어야 하는데
네오가 프로그래머스에 이 문제를 어떻게 해결할지 묻네요

📝 My Solution

전체 풀이 코드 👈🏻 클릭시 Github로 이동

해당 문제에 대해서 어떻게 접근할 지 머리가 돌아가지 않아
약 1시간 정도 고민하다가 결국 내 힘으로는 해결하지 못해
한가지 솔루션을 얻게 됐다

바로 그건 정규표현식

그렇다면 단계별로 어떻게 적용했는지 한번 알아보도록 하자

function solution(new_id) {
    const answer = new_id.toLowerCase()
                  .replace(/[^\w\-\.]/g,'')
                  .replace(/\.+/g,'.')

1단계 : 문자열에 대문자가 있다면 소문자로 변경
-> .toLowerCase() 함수를 활용해 소문자로 문자를 변경

2단계 : 소문자, -, ., _ 를 제외하고 특수문자 제거
-> 정규표현식 /[^\w\-\.]/g 이용

3단계 : . 이 중첩된다면 하나로 합치기
-> 정규표현식 /\.+/g 이용

		  .replace(/^\.|\.$/g,'')
                  .replace(/^$/,'a')
                  .slice(0,15).replace(/^\.|\.$/g,'')
    return answer.length > 2 ? answer : answer.padEnd(3, answer[answer.length-1])

4단계 : 문자열 앞, 뒤에 .이 있다면 제거
-> 정규표현식 /^\.|\.$/g 이용

5단계 : 문자열에 비어있다면 a를 추가
-> .replace(/^$/,'a') 이용

6단계 : 최대 15자를 표현하고 마지막에 . 이 있다면 제거
-> .slice(0,15).replace(/^\.|\.$/g,'') 이용

7단계 : 문자열의 길이가 2이하라면 3이 될때까지 마지막 문자 반복
-> answer.padEnd(3, answer[answer.length-1])

결과

이 문제를 통해 정규표현식에 대한 공부가 필요하다고 생각하게 되었다.
이전에 프로젝트를 진행할 때 로그인 시 아이디나 비밀번호 유효성 검사에서 사용했는데
그 이후로는 사용한 적이 없어 많이 찾아보지 않았는데
이번 기회를 통해 더 공부할 필요를 느낀다

좋은 웹페이지 즐겨찾기