๋ชฉ๋กDEV_IN (89)
let's get IT with DAVINA ๐ป
1.1 ์๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์น ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ค. ์ฒ์์ ์น ํ์ด์ง ์ ์์ ์์ด์ ๋ณด์กฐ์ ์ธ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์ฉ๋๋ก์จ ์ฌ์ฉํ์ฌ ์ฃผ๋ชฉ๋ฐ์ง ๋ชปํ๋ ์ธ์ด..๐ฅฒ BUT, prototype.js์ ๊ฐ์ ์ฃผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๊ฐ๋ฐ๋๊ณ && jQuery์ ๋ฑ์ฅ์ผ๋ก ๋ณด๋ค ์ฝ๊ฒ DOM(Document Object Model)์ ํธ๋ค๋งํ๊ฒ ๋๋ฉด์ ๋ง์ ๋ฐ์ ์ ์ด๋ฃจ์๋ค. 1.2 ์๋ฐ์คํฌ๋ฆฝํธ ํ์ฉ ๋ฒ์ 1.2.1 ์น ๊ฐ๋ฐ ํฌ๋กฌ์ด๋ ํ์ด์ดํญ์ค ๋ฑ ์น ๋ธ๋ผ์ฐ์ ๋ค์ด ๋๋ ์ด ๋ฐ์ ํ๋ฉด์ ์๋ก์ด ๋ฒ์ ์ ๋ด๋์๋๋ง๋ค ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ฑ๋ฅ ํฅ์์ ๊ฐ์กฐํ๋ค. ์ด๋ ์น ํ์ด์ง ๊ฐ๋ฐ์ ์์ด ์๋ฐ์คํฌ๋ฆฝํธ์ ์ญํ ์ด ์ผ๋ง๋ ํฐ์ง๋ฅผ ๋ฐฉ์ฆํ๋ค. 1.2.2 ์๋ฒ ๊ฐ๋ฐ Node.js์ ์ถํ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ ์๋ฒ ๊ฐ๋ฐ๋ ํ..
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
โ๏ธ ์ฌ์ Knowledge ++ FE ์ํ ๊ด๋ฆฌ redux, mobx, recoil ๋ฑ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์กด์ฌ ์ํ๋? ์ฃผ์ด์ง ์๊ฐ์ ๋ํด ์์คํ ์ ๋ํ๋ด๋ ๊ฒ์ผ๋ก ์ธ์ ๋ ์ง ๋ณ๊ฒฝ๋ ์ ์์. ์ฆ, ๋ฌธ์์ด, ๋ฐฐ์ด, ๊ฐ์ฒด ๋ฑ์ ํํ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ์ฅ๋ ๋ฐ์ดํฐ → ๊ฐ๋ฐ์ ์ ์ฅ์์๋ ๊ด๋ฆฌํด์ผํ๋ ๋ฐ์ดํฐ๋ค ์ํ๊ด๋ฆฌ? ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ ๋ณํํ๋ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ React์์ ๋จ๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ด๋ฏ๋ก props drilling ์ด์๋ ์กด์ฌ (redux, mobx์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ํด๊ฒฐํ๊ธฐ๋ ํจ) store์ ์ ์ญ์ํ๊ฐ ์ ์ฅ๋๊ณ ๊ด๋ฆฌ๋๋ ๊ณต๊ฐ์ธ๋ฐ redux, redux-saga๋ฐฉ์์ผ๋ก ๋น๋๊ธฐ ์์ฒญ์ ๊ตฌํํ๊ฒ ๋๋ฉด redux ๊ตฌํํ๋ ๋ชจ๋์ APIํต์ ๊ด๋ จ ์ฝ๋๊ฐ ๋๋ถ๋ถ์ด๊ฒ ๋จ ๋น์ทํ ๊ตฌ์กฐ์ API ํต..
โ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด my_string์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋๋ฌธ์๋ ์๋ฌธ์๋ก ์๋ฌธ์๋ ๋๋ฌธ์๋ก ๋ณํํ ๋ฌธ์์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ซ ์ ํ์ฌํญ 1 ≤ my_string์ ๊ธธ์ด ≤ 1,000 my_string์ ์์ด ๋๋ฌธ์์ ์๋ฌธ์๋ก๋ง ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๐๏ธ ์ ์ถ๋ ฅ ์ my_string result "cccCCC" "CCCccc" "abCdEfghIJ" "ABcDeFGHij" โ๏ธ๋น๋'s ํ์ด ์ฒ์์๋ 1์ฐจ ๋ฐ๋ณต๋ฌธ์ lower์์ ๋๋ ธ๊ณ , 2์ฐจ ๋ฐ๋ณต๋ฌธ์ my_string์์ ๋๋ ค์ ํ ์คํธ์ผ์ด์ค๋ ํต๊ณผํ์ผ๋ ์ ์ถ์ ํ๋ฉด ํต๊ณผ๋ฅผ ๋ชปํ๋ค.. ๊ทธ๋์ ํ ์คํธ์ผ์ด์ค์ ์๋ ๋ด๊ฐ ์๊ฐ ๋ชปํ ๊ฒฝ์ฐ๊ฐ ๋ญ๊ฐ ์๋ ์๊ฐํด๋ดค๋๋ ๋ง์ฝ ์ ๋ ฅ๊ฐ์ด ์ํ๋ฒณ ์์๋๋ก๊ฐ ์๋๋ผ "gbca"์ฒ๋ผ ๋ฌด..
โ ๋ฌธ์ ์ด๋ค ํฐ ๋ํ์ง์ ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ ธ ์์ ๋, ๊ทธ ๊ทธ๋ฆผ์ ๊ฐ์์, ๊ทธ ๊ทธ๋ฆผ ์ค ๋์ด๊ฐ ๊ฐ์ฅ ๋์ ๊ฒ์ ๋์ด๋ฅผ ์ถ๋ ฅํ์ฌ๋ผ. ๋จ, ๊ทธ๋ฆผ์ด๋ผ๋ ๊ฒ์ 1๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ ํ ๊ทธ๋ฆผ์ด๋ผ๊ณ ์ ์ํ์. ๊ฐ๋ก๋ ์ธ๋ก๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ด๊ณ ๋๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ ๋จ์ด์ง ๊ทธ๋ฆผ์ด๋ค. ๊ทธ๋ฆผ์ ๋์ด๋ ๊ทธ๋ฆผ์ ํฌํจ๋ 1์ ๊ฐ์์ด๋ค. ๐๏ธ ์ ๋ ฅ ์ฒซ์งธ ์ค์ ๋ํ์ง์ ์ธ๋ก ํฌ๊ธฐ n(1 ≤ n ≤ 500)๊ณผ ๊ฐ๋ก ํฌ๊ธฐ m(1 ≤ m ≤ 500)์ด ์ฐจ๋ก๋ก ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ n+1 ์ค ๊น์ง ๊ทธ๋ฆผ์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. (๋จ ๊ทธ๋ฆผ์ ์ ๋ณด๋ 0๊ณผ 1์ด ๊ณต๋ฐฑ์ ๋๊ณ ์ฃผ์ด์ง๋ฉฐ, 0์ ์์น ์ด ์๋ ๋ถ๋ถ, 1์ ์์น ์ด ๋ ๋ถ๋ถ์ ์๋ฏธํ๋ค) ๐๏ธ ์ถ๋ ฅ ์ฒซ์งธ ์ค์๋ ๊ทธ๋ฆผ์ ๊ฐ์, ๋์งธ ์ค์๋ ๊ทธ ์ค ๊ฐ์ฅ ๋์ ๊ทธ๋ฆผ์ ๋์ด๋ฅผ ์ถ๋ ฅํ์ฌ..
โ๋ฌธ์ ์ค๋ช ์ด๋ค ์์ฐ์๋ฅผ ์ ๊ณฑํ์ ๋ ๋์ค๋ ์ ์๋ฅผ ์ ๊ณฑ์๋ผ๊ณ ํฉ๋๋ค. ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, n์ด ์ ๊ณฑ์๋ผ๋ฉด 1์ ์๋๋ผ๋ฉด 2๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ซ ์ ํ์ฌํญ 1 ≤ n ≤ 1,000,000 โ๏ธ ๋น๋'s ํ์ด function solution(n) { if(Number.isInteger(Math.sqrt(n))===true){ return 1; } else return 2; } ๐ others' ํ์ด function solution(n) { for (let i=0; i*i
์ต๊ทผ ์คํ์ ํ์ฉ ๋ฌธ์ ๋ฅผ ๋ฐฑ์ค์์ ํ์๋๋ฐ, ํด๋น ๋ฌธ์ ๋ ๋์ผํด์ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์๋ค. โ๋ฌธ์ ์ค๋ช ๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค. ์๋ฅผ ๋ค์ด - "()()" ๋๋ "(())()" ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ ๋๋ค. - ")()(" ๋๋ "(()(" ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ ๋๋ค. '(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฌธ์์ด s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด true๋ฅผ return ํ๊ณ , ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ฉด false๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๐ซ ์ ํ์ฌํญ ๋ฌธ์์ด s์ ๊ธธ์ด : 100,000 ์ดํ์ ์์ฐ์ ๋ฌธ์์ด s๋ '(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. โ๏ธ ๋น๋'s ํ์ด ์คํ์ ํ..