๋ชฉ๋กDEV_IN (89)

let's get IT with DAVINA ๐Ÿ’ป

[Inside JavaScript] Chapter 1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๊ฐœ์š”

1.1 ์†Œ๊ฐœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค. ์ฒ˜์Œ์—” ์›น ํŽ˜์ด์ง€ ์ œ์ž‘์— ์žˆ์–ด์„œ ๋ณด์กฐ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ์จ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ๋ชฉ๋ฐ›์ง€ ๋ชปํ–ˆ๋˜ ์–ธ์–ด..๐Ÿฅฒ BUT, prototype.js์™€ ๊ฐ™์€ ์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ๊ฐœ๋ฐœ๋˜๊ณ  && jQuery์˜ ๋“ฑ์žฅ์œผ๋กœ ๋ณด๋‹ค ์‰ฝ๊ฒŒ DOM(Document Object Model)์„ ํ•ธ๋“ค๋งํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๋งŽ์€ ๋ฐœ์ „์„ ์ด๋ฃจ์—ˆ๋‹ค. 1.2 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ™œ์šฉ ๋ฒ”์œ„ 1.2.1 ์›น ๊ฐœ๋ฐœ ํฌ๋กฌ์ด๋‚˜ ํŒŒ์ด์–ดํญ์Šค ๋“ฑ ์›น ๋ธŒ๋ผ์šฐ์ €๋“ค์ด ๋‚˜๋‚ ์ด ๋ฐœ์ „ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๋‚ด๋†“์„๋•Œ๋งˆ๋‹ค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฐ•์กฐํ•œ๋‹ค. ์ด๋Š” ์›น ํŽ˜์ด์ง€ ๊ฐœ๋ฐœ์— ์žˆ์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์—ญํ• ์ด ์–ผ๋งˆ๋‚˜ ํฐ์ง€๋ฅผ ๋ฐฉ์ฆํ•œ๋‹ค. 1.2.2 ์„œ๋ฒ„ ๊ฐœ๋ฐœ Node.js์˜ ์ถœํ˜„์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•œ ์„œ๋ฒ„ ๊ฐœ๋ฐœ๋„ ํ™œ..

DEV_IN/JavaScript 2023. 3. 27. 18:20
React Query

โœ๏ธ ์‚ฌ์ „ Knowledge ++ FE ์ƒํƒœ ๊ด€๋ฆฌ redux, mobx, recoil ๋“ฑ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์กด์žฌ ์ƒํƒœ๋ž€? ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ๋Œ€ํ•ด ์‹œ์Šคํ…œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์œผ๋กœ ์–ธ์ œ๋“ ์ง€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ. ์ฆ‰, ๋ฌธ์ž์—ด, ๋ฐฐ์—ด, ๊ฐ์ฒด ๋“ฑ์˜ ํ˜•ํƒœ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ → ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ์ƒํƒœ๊ด€๋ฆฌ? ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ React์—์„  ๋‹จ๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ์ด๋ฏ€๋กœ props drilling ์ด์Šˆ๋„ ์กด์žฌ (redux, mobx์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๊ฒฐํ•˜๊ธฐ๋„ ํ•จ) store์€ ์ „์—ญ์ƒํƒœ๊ฐ€ ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ๊ณต๊ฐ„์ธ๋ฐ redux, redux-saga๋ฐฉ์‹์œผ๋กœ ๋น„๋™๊ธฐ ์š”์ฒญ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜๋ฉด redux ๊ตฌํ˜„ํ•˜๋Š” ๋ชจ๋“ˆ์— APIํ†ต์‹  ๊ด€๋ จ ์ฝ”๋“œ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๊ฒŒ ๋จ ๋น„์Šทํ•œ ๊ตฌ์กฐ์˜ API ํ†ต..

DEV_IN/React 2023. 3. 24. 22:22
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]Lv0. ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž

โ“๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ž์—ด 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"์ฒ˜๋Ÿผ ๋ฌด..

[๋ฐฑ์ค€ #1926] ๊ทธ๋ฆผ → BFS ํ™œ์šฉ

โ“ ๋ฌธ์ œ ์–ด๋–ค ํฐ ๋„ํ™”์ง€์— ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ ธ ์žˆ์„ ๋•Œ, ๊ทธ ๊ทธ๋ฆผ์˜ ๊ฐœ์ˆ˜์™€, ๊ทธ ๊ทธ๋ฆผ ์ค‘ ๋„“์ด๊ฐ€ ๊ฐ€์žฅ ๋„“์€ ๊ฒƒ์˜ ๋„“์ด๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ๋ผ. ๋‹จ, ๊ทธ๋ฆผ์ด๋ผ๋Š” ๊ฒƒ์€ 1๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ•œ ๊ทธ๋ฆผ์ด๋ผ๊ณ  ์ •์˜ํ•˜์ž. ๊ฐ€๋กœ๋‚˜ ์„ธ๋กœ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์€ ์—ฐ๊ฒฐ์ด ๋œ ๊ฒƒ์ด๊ณ  ๋Œ€๊ฐ์„ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ๋œ ๊ฒƒ์€ ๋–จ์–ด์ง„ ๊ทธ๋ฆผ์ด๋‹ค. ๊ทธ๋ฆผ์˜ ๋„“์ด๋ž€ ๊ทธ๋ฆผ์— ํฌํ•จ๋œ 1์˜ ๊ฐœ์ˆ˜์ด๋‹ค. ๐Ÿ—๏ธ ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋„ํ™”์ง€์˜ ์„ธ๋กœ ํฌ๊ธฐ n(1 ≤ n ≤ 500)๊ณผ ๊ฐ€๋กœ ํฌ๊ธฐ m(1 ≤ m ≤ 500)์ด ์ฐจ๋ก€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ n+1 ์ค„ ๊นŒ์ง€ ๊ทธ๋ฆผ์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (๋‹จ ๊ทธ๋ฆผ์˜ ์ •๋ณด๋Š” 0๊ณผ 1์ด ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ฃผ์–ด์ง€๋ฉฐ, 0์€ ์ƒ‰์น ์ด ์•ˆ๋œ ๋ถ€๋ถ„, 1์€ ์ƒ‰์น ์ด ๋œ ๋ถ€๋ถ„์„ ์˜๋ฏธํ•œ๋‹ค) ๐Ÿ—๏ธ ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์—๋Š” ๊ทธ๋ฆผ์˜ ๊ฐœ์ˆ˜, ๋‘˜์งธ ์ค„์—๋Š” ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋„“์€ ๊ทธ๋ฆผ์˜ ๋„“์ด๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]Lv2. ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

์ตœ๊ทผ ์Šคํƒ์˜ ํ™œ์šฉ ๋ฌธ์ œ๋ฅผ ๋ฐฑ์ค€์—์„œ ํ’€์—ˆ๋Š”๋ฐ, ํ•ด๋‹น ๋ฌธ์ œ๋ž‘ ๋™์ผํ•ด์„œ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. โ“๋ฌธ์ œ ์„ค๋ช… ๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด - "()()" ๋˜๋Š” "(())()" ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. - ")()(" ๋˜๋Š” "(()(" ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ๐Ÿšซ ์ œํ•œ์‚ฌํ•ญ ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. โ—๏ธ ๋น„๋‹ˆ's ํ’€์ด ์Šคํƒ์˜ ํ™œ..