function solution(new_id) {
const recommendationId = (id) => {
// 1๋จ๊ณ. ๋๋ฌธ์ -> ์๋ฌธ์
id = id.toLowerCase();
// 2๋จ๊ณ. ์ํ๋ฒณ, ์ซ์, -, _, . ์ ์ธ ๋ชจ๋ ์ ๊ฑฐ
let re = /[^a-z0-9-_.]/g;
id = id.replace(re, '');
// 3๋จ๊ณ. ๋ง์นจํ 2๋ฒ ์ด์ ์ฐ์์ ํ๋๋ก ์นํ
re = /[.][.]+/g;
id = id.replace(re, '.');
// 4๋จ๊ณ. ๋ง์นจํ ์ฒ์ ํน์ ๋์ ์์นํ๋ค๋ฉด ์ ๊ฑฐ
id = [...id];
if (id[0] === '.') {
id.shift();
}
if (id[id.length - 1] === '.') {
id.pop();
}
id = id.join('');
console.log(id);
// 5๋จ๊ณ. ์์ด๋ ๋น๋ฌธ์์ด์ด๋ฉด 'a'
if (id.length === 0) {
id = 'a';
}
// 6๋จ๊ณ. ์์ด๋ 16์ ์ด์์ธ ๊ฒฝ์ฐ ์ฒซ 15๊ฐ๋ง ๋จ๊ธฐ๊ธฐ
if (id.length >= 16) {
id = id.slice(0, 15);
if (id[id.length - 1] === '.') {
id = [...id];
id.pop();
id = id.join('');
}
}
// 7๋จ๊ณ. ๊ธธ์ด๊ฐ 2์ ์ดํ๋ผ๋ฉด ๋ ๋ฌธ์๋ฅผ 3์ด ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ๋ถ์ธ๋ค.
if (id.length <= 2) {
id = [...id];
let endword = id[id.length - 1];
while (id.length < 3) {
id.push(endword);
}
id = id.join('');
}
return id;
};
return recommendationId(new_id);
}
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ๊ท ์์ด๋ ์ถ์ฒ
์นด์นด์ค์ ์ ์ฌํ ์ ์ ๊ฐ๋ฐ์ ๋ค์ค๋ "์นด์นด์ค๊ณ์ ๊ฐ๋ฐํ"์ ๋ฐฐ์น๋์ด, ์นด์นด์ค ์๋น์ค์ ๊ฐ์ ํ๋ ์ ์ ๋ค์ ์์ด๋๋ฅผ ์์ฑํ๋ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์์ต๋๋ค. "๋ค์ค"์๊ฒ ์ฃผ์ด์ง ์ฒซ ์ ๋ฌด๋ ์๋ก
programmers.co.kr
์ด ๋ฌธ์ ๋ ์ ๊ท์๋ง ์๋ฉด ๋ฌธ์ ์์ ์ด๋ฏธ ์์ฌ์ฝ๋๋ฅผ ์ ์ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ตฌํ๋ง ํ๋ฉด ๋๋ ๋ฌธ์ ๋ผ, ์ฝ๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ๋ค!
๋ฌธ์์ด์์ ๋จ๊ณ๋ณ ์กฐ๊ฑด์ ๋ง์ถ๊ธฐ ์ํด ๋ฐฐ์ด์ ์๋ค๊ฐ๋ค ํ๋๋ฐ, ์ด ๋ถ๋ถ์ด ์ฌ์ค ํจ์ก์ ์ด์ง ์๋ค๊ณ ๋๋๋ค.
๊ทธ๋๋ ๋ค์ํ๋ฒ ์ ๊ทํํ์์ ๋ํด์ ํ์ฉํด๋ณผ ์ ์๋ ๋ฌธ์ ๋ผ ์ฌ๋ฏธ์๊ฒ ํ ์ ์์๋ค. :)
์ถ๊ฐ) ์ด ๋ฌธ์ ๋ ํ๊ณ ๋์ ๋ค๋ฅธ ๋ถ๋ค์ด ํธ์ ๊ฒ๋ค๋ ๋ค์ํ๊ฒ ํ์ธํ๋ ๊ฒ์ ์ถ์ฒ! (๋จ, ์ ๊ทํํ์์ ์์ฒญ ์ ํ์ฉํ ํ์ด๋ณด๋ค๋ ์๊ฐ๋ณต์ก๋ ๊ณ ๋ คํ์ฌ์ ์ ํ์ด์ง ํ์ด๋ค์ ๋ณผ ๊ฒ์ ์ถ์ฒ!)
์ถ๊ฐ2) ์์ ๋ด ํ์ด์์, pop()์ ๊ทธ๋๋ง ๋์๋ฐ shift()๋ O(n)์ผ๋ก ๊ต์ฅํ ๋นํจ์จ์ ์ด๊ธฐ๋ ํ๋ค.
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์นด์นด์ค2022 - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2022.07.01 |
---|---|
[JS] 2021์นด์นด์ค - ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (0) | 2022.07.01 |
[JS] 2020์นด์นด์ค - ํคํจ๋ ๋๋ฅด๊ธฐ (0) | 2022.07.01 |
[JS] 2019์นด์นด์ค - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2022.06.30 |
[JS] ์์ ๋ง๋ค๊ธฐ (0) | 2022.06.30 |