-
프로그래머스 - 신규 아이디 추천Algorithm 2023. 5. 15. 19:16
문제
풀이
주어진 문제조건에서 단계별로 친절하게 설명되어 있어 단계별로 진행하였다.
1단계 : new_id 문자열을 소문자로 변환
2단계 : '-', '.', '_'을 제외한 모든 특수문자을 찾아내는 정규식으로 replaceAll을 이용해 특수문자를 제거
3단계 : 문자열에 점이 두번 연속 존재하는 ".." 문자열이 존재하지 않을 때 까지 문자열에서 ".."문자열을 "."로 변환
4단계 : 문자열의 첫 글자나 마지막 글자가 "." 특수문자일 경우 마지막 글자 제거
5단계 : 문자열 길이가 0이라면 문자열에 "a" 추가
6단계 : 문자열의 길이가 15글자를 넘는다면 15글자까지 잘라내고 마지막 글자가 "." 특수기호일 경우 마지막 글자 제거
7단계 : 문자열의 길이가 3보다 작다면 문자열의 길이가 3 이상이 될 때 까지 문자열의 마지막 글자를 문자열에 추가
function solution(new_id) { let secondConditionReg = /[\{\}\[\]\/?,:\)*~!^\+<>@\#$%&\=\(]/g; // 1단계 let answer = new_id.toLowerCase(); // 2단계 answer = answer.replaceAll(secondConditionReg, ""); // 3단계 while(answer.includes('..')){ answer = answer.replace('..', '.'); } // 4단계 answer = answer.replace(/^\.|\.$/g, ''); // 5단계 if(answer.length === 0) answer += 'a'; // 6단계 if(answer.length > 15) { answer = answer.substr(0, 15); answer = answer.replace(/\.$/, ''); } // 7단계 if(answer.length < 3){ while(answer.length < 3) { answer += answer[answer.length-1]; } } return answer; }
'Algorithm' 카테고리의 다른 글
프로그래머스 - 짝지어 제거하기 (0) 2023.05.21 프로그래머스 - [1차] 비밀지도 (0) 2023.05.20 프로그래머스 - 과일 장수 (1) 2023.05.12 프로그래머스 - 신고 결과 받기 (1) 2023.05.12 프로그래머스 - 체육복 (0) 2023.05.06