728x90
반응형
2021.07.17
문제명 : 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천
사용언어 : Javascript
개발 시간 : 50분
📋 문제 설명
복잡해보이지만 주어진 규칙을 순서대로 적용해주면 되는 문제입니다.
📢 입출력 예
🔑 문제 풀이
function solution(new_id) {
var answer = '';
new_id = new_id.toLowerCase(); // 1. 소문자로 치환
new_id = new_id.replace(/[^a-z0-9-._]/gi, ''); // 2. 특정문자 외 제거
// 3단계 : 연속된 . 하나로 치환
var str = '';
for(var i=0; i<new_id.length; i++){
if(new_id[i] == '.' && new_id[i-1] == '.'){
str += '';
}else{
str += new_id[i];
}
}
new_id = str;
// 4단계 : . 처음 또는 끝일 경우 제거
new_id = four(new_id);
// 5단계
if(new_id == '') new_id = 'a';
// 6단계
if(new_id.length>15) new_id = new_id.substring(0,15);
new_id = four(new_id);
// 7단계
new_id = seven(new_id);
answer = new_id;
return answer;
}
function four(new_id){
if(new_id.substring(0,1) == '.') new_id = new_id.slice(1);
if(new_id.substring(new_id.length-1) == '.') new_id = new_id.substring(0,new_id.length-1);
return new_id;
}
function seven(new_id){
if(new_id.length < 3){
new_id = new_id + new_id.substring(new_id.length-1);
return seven(new_id);
}else{
return new_id;
}
}
🔔 새로 알게 된 점
문제가 어렵지는 않았으나 정규식 부분에서 시간이 많이 잡힌 것 같습니다.
/[^a-z0-9-._]/gi 에서
^~ : ~를 제외하고
a-z : a부터 z까지
0-9 : 0부터 9까지
-._ 등등 : 해당 문자열
728x90
반응형
'Programmers > Javascript' 카테고리의 다른 글
[프로그래머스] 순위 검색 javascript ⭐ (0) | 2021.08.17 |
---|---|
[프로그래머스] 숫자 문자열과 영단어 javascript (2) | 2021.07.29 |
[프로그래머스] 로또의 최고 순위와 최저 순위 javascript (0) | 2021.07.14 |
[프로그래머스] 키패드 누르기 javascript (0) | 2021.06.26 |
[프로그래머스] 폰켓몬 javascript (0) | 2021.06.13 |