DevYoon
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๊ท ์์ด๋ ์ถ์ฒ (Javascript) ๋ณธ๋ฌธ
link ๐ https://school.programmers.co.kr/learn/courses/30/lessons/72410
โ๏ธ ๋ฌธ์ ์์ ์ ์๋๋ ๋จ๊ณ์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋ง ์ ํด์ฃผ๋ฉด ๋ณ ๋ฌธ์ ์์ด ํ ์ ์๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค.
โ๏ธ ๊ทธ๋ฐ๋ฐ ๊ณ์ ํ ์คํธ์ผ์ด์ค 3๋ฒ์์ ์คํจํ๋ค...๐ญ
โ๏ธ ๋๋ฒ๊น ์ ๋๋ฒ๊น ์ ๋๋ฒ๊น ์ ๊ฑฐ์น๋ค ์ด์ ๋ฅผ ๋ฐ๊ฒฌํ๋๋ฐ, ์ธ๋ฑ์ค 0๊ณผ -1์ .์ด ์์ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํด์ค ๋ if์ else if๋ก ์ฒ๋ฆฌํด๋ฒ๋ ค์ ์ธ๋ฑ์ค 0๋ง .์ธ ๊ฒฝ์ฐ์ ์ธ๋ฑ์ค -1๋ง .์ธ ๊ฒฝ์ฐ๋ ์ฒ๋ฆฌํ์ง๋ง, ์ธ๋ฑ์ค 0๊ณผ -1 ๋ชจ๋ .์ธ ๊ฒฝ์ฐ ์ธ๋ฑ์ค 0๋ง ์ฒ๋ฆฌํด์ฃผ๊ธฐ ๋๋ฌธ์ด์๋ค!
โ๏ธ ์ค์ ์กฐ์ฌ... ๋ฐ๋ณด ๊ฐ์ ์ค์๋ก ์๊ฐ์ ๋ง์ด ๋ ๋ ธ์ง๋ง ๊ทธ๋๋ ์ด์ ๋ฅผ ์ฐพ์์ ํด๊ฒฐํด์ ๊ธฐ๋ถ์ด ์ข๋ค ใ ใ
function solution(new_id) {
var answer = '';
// 1. ์๋ฌธ์ ๋ณํ
new_id = new_id.toLowerCase().split("");
// 2. ํฌํจ๋๋ฉด ์ ๋๋ ๋ฌธ์ ์ญ์
const is_valid = new_id.filter((item) => {
if((item >= "a" && item <= "z") ||
(item >= "0" && item <= "9") ||
(item === "-") || (item === ".") || (item === "_")){
return item
}
})
// 3. . ์ฐ์ ์ฒ๋ฆฌ
let delete_dot = "";
for(let idx = 0; idx < is_valid.length-1; idx++){
if(is_valid[idx] === "." && is_valid[idx+1] === "."){
delete_dot += '';
}else{
delete_dot += is_valid[idx];
}
}
// ๋ง์ง๋ง ๋ฌธ์ ํฌํจ
delete_dot += is_valid.at(-1);
// 4. ์ฒ์๊ณผ ๋์ ์๋ . ์ฒ๋ฆฌ
let delete_dot_arr = delete_dot.split("");
if(delete_dot_arr.at(0) === "."){
delete_dot_arr = delete_dot_arr.slice(1)
}
if(delete_dot_arr.at(-1) === "."){
delete_dot_arr = delete_dot_arr.slice(0, delete_dot_arr.length-1);
}
// 5. ๋น ๋ฌธ์์ด ์ฒ๋ฆฌ
if(delete_dot_arr.length === 0){
delete_dot_arr = ["a"]
}
// 6. ๋ฌธ์์ด ๊ธธ์ด ์ฒ๋ฆฌ
if(delete_dot_arr.length > 15){
delete_dot_arr = delete_dot_arr.slice(0, 15);
if(delete_dot_arr.at(-1) === "."){
delete_dot_arr = delete_dot_arr.slice(0, delete_dot_arr.length-1);
}
}
if(delete_dot_arr.length < 3){
while(delete_dot_arr.length < 3){
delete_dot_arr.push(delete_dot_arr.at(-1));
}
}
answer = delete_dot_arr.join("");
return answer
}
โญ ์ ๊ทํํ์์ผ๋ก๋ ํ์ด๋ณด๊ธฐ!!