๐ฉ๐ปโ๐ป๋ฌธ์ ๋งํฌ
[ํ๋ก๊ทธ๋๋จธ์ค 12926] ์์ ์ํธ (Javascript)
๋ฌธ์ ์ค๋ช
์ด๋ค ๋ฌธ์ฅ์ ๊ฐ ์ํ๋ฒณ์ ์ผ์ ํ ๊ฑฐ๋ฆฌ๋งํผ ๋ฐ์ด์ ๋ค๋ฅธ ์ํ๋ฒณ์ผ๋ก ๋ฐ๊พธ๋ ์ํธํ ๋ฐฉ์์ ์์ ์ํธ๋ผ๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด "AB"๋ 1๋งํผ ๋ฐ๋ฉด "BC"๊ฐ ๋๊ณ , 3๋งํผ ๋ฐ๋ฉด "DE"๊ฐ ๋ฉ๋๋ค. "z"๋ 1๋งํผ ๋ฐ๋ฉด "a"๊ฐ ๋ฉ๋๋ค. ๋ฌธ์์ด s์ ๊ฑฐ๋ฆฌ n์ ์
๋ ฅ๋ฐ์ s๋ฅผ n๋งํผ ๋ฏผ ์ํธ๋ฌธ์ ๋ง๋๋ ํจ์, solution์ ์์ฑํด ๋ณด์ธ์.
์ ํ ์กฐ๊ฑด
๊ณต๋ฐฑ์ ์๋ฌด๋ฆฌ ๋ฐ์ด๋ ๊ณต๋ฐฑ์
๋๋ค.
s๋ ์ํ๋ฒณ ์๋ฌธ์, ๋๋ฌธ์, ๊ณต๋ฐฑ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
s์ ๊ธธ์ด๋ 8000์ดํ์
๋๋ค.
n์ 1 ์ด์, 25์ดํ์ธ ์์ฐ์์
๋๋ค.
์
์ถ๋ ฅ ์
s n result
"AB" 1 "BC"
"z" 1 "a"
"a B z" 4 "e F d"
โ๏ธIdea Sketch
2021-06-18
1. char.charCodeAt() : 0๋ถํฐ 65535 ์ฌ์ด์ ์ ์๋ฅผ ๋ฐํ
ASCII ๋๋ฌธ์ 65 ~ 90, ์๋ฌธ์ 97 ~ 122, ๊ณต๋ฐฑ 32
let num = x.charCodeAt();
2. String.fromCharCode(num) : ๋ฌธ์์ด ๋ฐํ
String.fromCharCode(num)
3. ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ฐํ
let arr = s.split('')
4. for (let x of arr)
- ๋ฌธ์ --> ์ซ์์ ํ ํ ๋๋ฌธ์์ธ์ง ์๋ฌธ์์ธ์ง ๊ณต๋ฐฑ์ธ์ง
- ๊ณต๋ฐฑ์๋ ๊ฒฝ์ฐ, +n
- ๋๋ฌธ์์ธ ๊ฒฝ์ฐ 90, ์๋ฌธ์์ธ ๊ฒฝ์ฐ 122๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ -26 --> ์ผํญ์ฐ์ฐ์
- ์ซ์ --> ๋ฌธ์์ ํ
5. arr.filter๋ฅผ ์จ๋ณด๋ฉด ์ด๋จ๊น? (X) --> ๋ชจ๋ ์์๋ฅผ ์ฐ๋ฏ๋ก arr.map() ์ฌ์ฉ๊ฒฐ์
6. join('')์ผ๋ก ๋ง๋ฌด๋ฆฌ
โ๏ธ์์ค์ฝ๋
2021-06-18 ์ ํ์ฑ ํต๊ณผ
function solution(s, n) {
return s.split('').map(v => {
let num = v.charCodeAt()
if (num === 32) return v; // ๊ณต๋ฐฑ
else if (num >= 65 && num <= 90) { // ๋๋ฌธ์
return num+n <= 90 ? String.fromCharCode(num+n) : String.fromCharCode(num+n-26)
}
else { // ์๋ฌธ์
return num+n <= 122 ? String.fromCharCode(num+n) : String.fromCharCode(num+n-26)
}
}).join('');
}