프로그래머스 | 신규 아이디 추천_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])
결과
이 문제를 통해 정규표현식에 대한 공부가 필요하다고 생각하게 되었다.
이전에 프로젝트를 진행할 때 로그인 시 아이디나 비밀번호 유효성 검사에서 사용했는데
그 이후로는 사용한 적이 없어 많이 찾아보지 않았는데
이번 기회를 통해 더 공부할 필요를 느낀다
Author And Source
이 문제에 관하여(프로그래머스 | 신규 아이디 추천_JS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sstaar91/Algorithm-Programmers-NewId저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)