programmers.co.kr/learn/challenges
์ํ๋ฒณ์ ์ผ์ ํ ๊ฑฐ๋ฆฌ๋งํผ ๋ฐ์ด์ ์๋ก์ด ๋ฌธ์๋ฅผ ๋ง๋๋ ์์ ์ํธ. ์ํธํ ํด์ผ ํ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๊ณ , ๋ฐ์ด์ผ ํ๋ ๊ฑฐ๋ฆฌ n์ด ์ฃผ์ด์ง ๋ ๋ณํ๋ ์์ ์ํธ๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค. (๋จ, ๊ณต๋ฐฑ์ ์๋ฌด๋ฆฌ ๋ฐ์ด๋ ๊ณต๋ฐฑ์ด๋ค. ๋ฌธ์์ด์ ์ํ๋ฒณ ์๋ฌธ์, ๋๋ฌธ์, ๊ณต๋ฐฑ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค.)
์ฝ๋
๋ฌธ์์ด์ iterableํ ๊ฐ์ฒด์ด๋ฏ๋ก for of ๋ฌธ๋ฒ์ผ๋ก ๋ฌธ์ ํ๋ ํ๋๋ฅผ ๊ฒ์ฌํ๋ค. ๊ณต๋ฐฑ์ผ ๊ฒฝ์ฐ์๋ ๋น ๊ณต๋ฐฑ์ ๋ฐํ๋์ด์ผ ํ ์๋ก์ด ๋ฌธ์์ด์ธ newStr
์ ๋ํด์ฃผ๊ณ , continue๋ก ๋ค์ ๋ฐ๋ณต๋ฌธ ํ๋ก์ธ์ค๋ฅผ ์งํํ๋ค.
String.prototype.charCodeAt()
๋ฉ์๋๋ ์ฃผ์ด์ง ์ธ๋ฑ์ค์ ๋ํ UTF-16 ์ฝ๋๋ฅผ ๋ํ๋ด๋ 0~65535 ์ ์๋ฅผ ๋ฐํํ๋ค. 'ABC'.charCodeAt(0)
๋ 65๋ฅผ ๋ฐํํ๋ ์์ด๋ค. ์ฌ๊ธฐ์ ๋ฐ์ด์ผ ํ ๊ฑฐ๋ฆฌ(n
)๋ฅผ ๋ํ๋ค.
์ด๋ ํด๋น ์ ๋์ฝ๋์ ๋ฌธ์๊ฐ ์๋ฌธ์์ ๋๋ฌธ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ ์๋ค. ์๋ฌธ์์ด๋ฉด์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฒฝ์ฐ๋ฅผ con1๋ก, ๋๋ฌธ์์ด๋ฉด์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฒฝ์ฐ๋ฅผ con2๋ก ๋๋์๊ณ , ๋๋ค์ ํด๋น๋์ง ์๋ ๊ฒฝ์ฐ์๋
String.fromCharCode(encodedUnicode)
๋ฉ์๋๋ฅผ ์จ์ ๋ฐ๋ก ๋ฐํ๋ ์๋ก์ด ๋ฌธ์์ด์ ๋ํ๋ค.
String.prototype.fromCharCode()
๋ฉ์๋๋ UTF-16 ์ฝ๋ ์ ๋์ ์ํ์ค๋ก๋ถํฐ ๋ฌธ์์ด์ ์์ฑํด ๋ฐํํ๋ค. String ๊ฐ์ฒด๊ฐ ์๋ ๋ฌธ์์ด์ ๋ฐํํ๋ค. String.fromCharCode(65,66,67)
์ 'ABC'๋ฅผ ๋ฐํํ๋ ์์ด๋ค. refine function์ ํ๋ ์ ์ํด๋์๋๋ฐ, ๋ณด์ ์ ์ํด ๋๋ฌธ์์ ์๋ฌธ์ ๊ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ฒฝ์ฐ ํด๋น ํจ์๋ฅผ ์คํํ๋ค.
๋ค๋ฅธ ํ์ด
์ ํ์ด์์ ์ข ๋ ๊ฐ๊ฒฐํ๊ฒ ์ธ ์ ์๋ ์ฝ๋์ด๋ค. s.charCodeAt(0) > 90
, ์ฆ ๋ฌธ์์ UTF-16 ์ฝ๋ ๊ฐ์ด ๋๋ฌธ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
๋๋ฌธ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ๋ค๋ฉด, ์๋ฌธ์ ๋ฒ์์ ์์์ธ 97์ ๋นผ์ฃผ์ด ๋ณด์ ์ ํด์ฃผ๊ณ , ๊ฑฐ๋ฆฌ n
๋งํผ์ ๋ํ๋ค. ์ด ๊ฐ์ 26์ผ๋ก ๋๋ ๋๋จธ์ง๋ ๊ตฌํ๊ณ , ๋ณด์ ์ ์ํด ๋บ๋ 97์ ๋ค์ ๋ํ๋ค. 26์ ์ํ๋ฒณ ๋ฌธ์์ ๊ฐ์์ด๋ค. ์๋ฌธ์์ ๋ํด์๋ ๋ง์ฐฌ๊ฐ์ง ๋ก์ง์ ์ฌ์ฉํ๋ค. refine ํจ์๋ฅผ ๋ง๋ค์ด ๋ฒ์๋ฅผ ๊ตฌ๋ถํด์ฃผ๊ณ ๊ฐ๊ฐ ์คํํ๋ ๋ฐฉ๋ฒ๋ณด๋ค ๊ณตํต์ ์ผ๋ก ์ธ ์ ์๋ ๋ก์ง์ ๋ง๋๋ ๊ฒ์ด ํจ์ฌ ๊ฐ์ ๋ ๋ฐฉ๋ฒ!