http://school.programmers.co.kr/learn/courses/30/lessons/17684/solution_groups?language=javascript
ํ์ด
์๋ฃ๊ตฌ์กฐ map์ ์ด์ฉํ์๋ค.
C++์ฒ๋ผ 'A'+1 ์ด๋ฐ char ์ฐ์ฐ์ด ์๋์ด์ ๋นํฉํ๋๋ฐ ์ ์ A~Z๊น์ง ๋ ธ๊ฐ๋ค๋ก ๋ฃ์๊น ํ๋ค๊ฐ ์ค๋ฐ์ธ๊ฒ ๊ฐ์์ ์์นํ๋ค
JS์๋ String.fromCharCode()๋ผ๋๊ฐ charCodeAt() ๊ฐ์๊ฒ ์๋๋ผ.
์๋ฌดํผ ๊ทธ๋ฆฌํ์ฌ ์ฌ์ ์ ํด๋นํ๋ dict ๋งต์ ์ด๊ธฐํํ ์ ์์๋ค
์ดํ ๋ฌธ์ ์ ๋์์๋ ๋๋ก ๊ตฌํ์ ํ๋ค
1. ์ฒ์๋ถํฐ ๋๊น์ง ๊ฐ์ฅ ๊ธด ๋ฌธ์์ด์ ์ฐพ๋๋ค
2. ์ด ๋ฌธ์์ด์ด ์ฌ์ ์ ์์๋๊น์ง ๊ธธ์ด๋ฅผ ๋์์ ์ค์ฌ๋๊ฐ๋ค
3. ์ต์ด๋ก ์ฌ์ ์ ์๋๊ฒ ๋ฐ๊ฒฌ๋์์ ๋, ์ด ๋ฌธ์์ด์ด ๋ฐ๋ก ์ฌ์ ์ ์กด์ฌํ๋ ๊ฐ์ฅ ๊ธด ๋ฌธ์์ด์ด๋ค.
4. ์ด ๋ฌธ์์ด์ ์ถ๋ ฅ (ans.push()) ํ๊ณ
5. ๋ค์ ๋จ์ด๋ฅผ ํฌํจ์์ผ์ ์ฌ์ ์ ๋ฃ๊ณ (map.set())
6. ๋ฐฉ๊ธ ์ด ๋ฌธ์์ด ์๋ผ๋ด๋ฒ๋ฆฌ๊ณ ๋ค์ ๋จ๊ณ ๋ฐ๋ณต
function solution(msg) {
let dic = new Map();
for(let i=1; i<=26; i++)
dic.set(String.fromCharCode("A".charCodeAt(0)+i-1), i);
let idx = 27;
let ans = [];
while(msg !== '') {
for(let i=msg.length; i>=0; i--) {
const w = msg.slice(0, i);
const c = msg.slice(i, i+1);
if(dic.has(w)) {
ans.push(dic.get(w));
dic.set(w+c, idx);
idx++;
msg = msg.slice(i, msg.length);
break;
}
}
}
return ans;
}
'๐ ๋ญ? JS๋ก PS๋ฅผ ํ๋ค๊ณ ?' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] [3์ฐจ] n์ง์ ๊ฒ์ (0) | 2023.05.31 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] N๊ฐ์ ์ต์๊ณต๋ฐฐ์ (0) | 2023.05.26 |
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.05.24 |
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] ํ๊ฒ ๋๋ฒ (0) | 2023.05.23 |
[ํ๋ก๊ทธ๋๋จธ์ค][JS / Javascript] ์คํ์ฑํ ๋ฐฉ (0) | 2023.05.19 |