문제
https://programmers.co.kr/learn/courses/30/lessons/72410?language=javascript
코드
function solution(new_id) {
var answer = '';
//1단계, 2단계
new_id = new_id.replace(/[^0-9A-Za-z._-]/g, '').toLowerCase()
//3단계
while (new_id.includes('..')){
new_id = new_id.replace("..", ".")
}
//4단계
if (new_id[0] === ".") {
new_id = new_id.slice(1, new_id.length-1);
}
if (new_id[new_id.length-1] === ".") {
new_id = new_id.slice(0, new_id.length-1);
}
//5단계
if (new_id.length == 0) return "aaa"
//6단계, 7단계
if (new_id.length >= 16) {
if (new_id[14] === "."){
return new_id.slice(0, 14);
} else return new_id.slice(0, 15);
}
else if (new_id.length <= 2){
while (new_id.length < 3) new_id += new_id[new_id.length-1]
}
return new_id;
}
- 4단계에 startsWith(), endsWith()를 이용
function solution(new_id) {
var answer = '';
//1단계, 2단계
new_id = new_id.replace(/[^0-9A-Za-z._-]/g, '').toLowerCase()
//3단계
while (new_id.includes('..')){
new_id = new_id.replace("..", ".")
}
//4단계
if (new_id.startsWith('.'))
new_id = new_id.slice(1);
if (new_id.length > 1 && new_id.endsWith('.'))
new_id = new_id.slice(0, -1);
//5단계
if (new_id.length == 0) return "aaa"
//6단계, 7단계
if (new_id.length >= 16) {
if (new_id[14] === "."){
return new_id.slice(0, 14);
} else return new_id.slice(0, 15);
}
else if (new_id.length <= 2){
while (new_id.length < 3) new_id += new_id[new_id.length-1]
}
return new_id;
}
'⏳ 알고리즘 > JavaScript 알고리즘' 카테고리의 다른 글
프로그래머스 - LV2. 짝지어 제거하기(2017 팁스타운) (0) | 2021.06.21 |
---|---|
프로그래머스 - LV1. 키패드 누르기(카카오 2020 인턴쉽) (0) | 2021.06.21 |
프로그래머스 - LV1. 모의고사 (0) | 2021.06.20 |
프로그래머스 - LV1. 체육복 (0) | 2021.06.20 |
프로그래머스 - LV1. 완주하지 못한 선수 (0) | 2021.06.19 |