풀이라고 할 것도 없이 그냥 문제에 나온 알고리즘대로 코딩하면 됨.
다만 다른 사람들의 풀이를 꼭 보기 바람.
난 그냥 지저분하게 하나하나 했는데, 정규식으로 깔끔하게 코드 짤 수 있음.
결과는 똑같으면 간결하고 명확한 코드가 더 좋은 코드니깐.
모든 프로그래머스 문제 관련 코드들은 GitHub 링크 에 있음.
function solution(new_id) {
new_id = new_id.toLowerCase();
new_id = new_id.replace(/[^a-z0-9-_.]/g, '');
new_id = new_id.replace(/[\.]+/g, '.');
if (new_id.indexOf('.') === 0) {
new_id = new_id.substring(1);
}
if (new_id.lastIndexOf('.') === new_id.length - 1) {
new_id = new_id.substring(0, new_id.length - 1);
}
if (!new_id) {
new_id = 'a';
}
new_id = new_id.substring(0, 15);
if (new_id[new_id.length - 1] === '.') {
new_id = new_id.substring(0, 14);
}
while (new_id.length < 3) {
new_id = new_id + new_id[new_id.length - 1];
}
return new_id;
}