반응형
https://programmers.co.kr/learn/courses/30/lessons/72410#
정해진 규칙에 맞게 하나씩 처리하면 되는 간단한 문제
결과 코드
function solution(new_id) {
new_id = new_id.toLowerCase(); // 1단계
new_id = new_id.replace(/[^0-9a-z\-_\.]/g, ""); // 2단계
new_id = new_id.replace(/\.{2,}/g, "."); // 3단계
new_id = new_id.replace(/^\.|\.$/g, ""); // 4단계
if(new_id == "") new_id = "a"; // 5단계
new_id = new_id.substring(0,15); // 6단계
new_id = new_id.replace(/\.$/, ""); // 6단계
while(new_id.length < 3) { // 7단계
let s = new_id[new_id.length - 1];
new_id = new_id + s;
}
return new_id;
}
다른 풀이
체이닝으로 보다 깔끔하게 작성할 수 있다.
function solution(new_id) {
const answer = new_id
.toLowerCase() // 1
.replace(/[^\w-_.]/g, '') // 2
.replace(/\.+/g, '.') // 3
.replace(/^\.|\.$/g, '') // 4
.replace(/^$/, 'a') // 5
.slice(0, 15).replace(/\.$/, ''); // 6
const len = answer.length;
return len > 2 ? answer : answer + answer.charAt(len - 1).repeat(3 - len);
}
반응형
'코딩테스트 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level1 문제풀기 1 (0) | 2022.03.08 |
---|---|
[프로그래머스] 수식 최대화 (0) | 2021.09.29 |
[프로그래머스] 124 나라의 숫자 (0) | 2021.09.29 |
[프로그래머스] 숫자 문자열과 영단어 (0) | 2021.09.29 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2021.09.28 |