์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 12926] ์‹œ์ € ์•”ํ˜ธ (Javascript)

์€์ง„ 2021. 6. 18. 10:57

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป๋ฌธ์ œ๋งํฌ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 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('');
}

โœ๏ธ๋ช…๋‹ต