
์์ ์ ํ๊ณ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๊ฑฐ๋ ์๋ก๊ณ ์นจํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?Jotai atom์ ๋ฉ๋ชจ๋ฆฌ์๋ง ์กด์ฌํฉ๋๋ค. ์๋ก๊ณ ์นจํ๋ ์๊ฐ ํ๋ ์ด๋ฆฌ์คํธ, ํ์ฌ ๊ณก, ๋ณผ๋ฅจ์ด ๋ชจ๋ ์ด๊ธฐํ๋ฉ๋๋ค.์คํธ๋ฆฌ๋ฐ ์ฑ์์ ์๋ก๊ณ ์นจํ ๋๋ง๋ค ์์ ์ด ์ฒ์๋ถํฐ ๋ค์ ์์๋๋ค๋ฉด ๋ถํธํ๊ฒ ์ฃ .์ฌ์ ์ํ๋ฅผ ๋ธ

๋ณด๊ดํจ ํ์ด์ง์๋ ํ๋ ์ด๋ฆฌ์คํธ๋ณ ํธ๋ ๋ชฉ๋ก์ด ์์ต๋๋ค.ํธ๋์ด 10~20๊ฐ๋ฉด ๋ฌธ์ ์์ง๋ง, ์ข์ํ๋ ๊ณก์ ๊ณ์ ์ถ๊ฐํ๋ค ๋ณด๋ฉด 100๊ณก, 200๊ณก์ด ๋ ์ ์์ต๋๋ค.์ฒ์์ ๋จ์ํ๊ฒ map()์ผ๋ก ์ ์ฒด๋ฅผ ๋ ๋๋งํ์ต๋๋ค.์ง๊ด์ ์ด๊ณ ๋์๋ ํฉ๋๋ค. ํ์ง๋ง "ํธ๋์ด ๋ง์์ง๋ฉด ์ด๋ป๊ฒ

ProgressBar ๋ฆฌํ์ธํธ ์ต์ํ (feat. transform: scaleX)

๐ก "์ ํน์ ์ปดํฌ๋ํธ์ ์ํ๋ง ์ ๋ฐ์ดํธ๋๋๋ฐ ์ ์ฒด ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋์ง?"

์๋ ํ์ธ์. ์ค๋๋ง์ ๋๋ค. ๋ถ์ ๋ง์ ์ํด๊ฐ ์ฐพ์์๋ค์!๐ ๋ชจ๋๋ค ์ํด ๋ณต ๋ง์ด ๋ฐ์ผ์ธ์!ใ ใ ์ ๋ ์๋ 10์ ์ ๋๋ถํฐ Yoon-Play2๋ผ๋ AI ๊ธฐ๋ฐ ์์ ํ๋ ์ด์ด๋ฅผ ๋ง๋ค๊ฒ ๋์์ต๋๋ค.์ด๋ฒ์๋! ๋จ์ํ ์์ ์ ์ฌ์ํ๋ ํ๋ ์ด์ด๊ฐ ์๋๋ผ, ์ฌ์ฉ์์ ์ ๋ ฅ ํ ์คํธ ๊ธฐ๋ฐ

ํด๋น ์๋ฃ๋ ์ ํ๋ธ ์ ์ฐฌ์ ํ๊ตญ์ธ๋ ๊ต์๋ ๊ฐ์๋ฅผ ์์ฒญํ๊ณ ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ๐๐ปclass MyList...// ํด๋น ์ฝ๋ !!\*Symbol.iterator { let current = this.head; while (current !== null)

ํด๋น ์๋ฃ๋ ์ ํ๋ธ ์ ์ฐฌ์ ํ๊ตญ์ธ๋ ๊ต์๋ ๊ฐ์๋ฅผ ์์ฒญํ๊ณ ์ ๋ฆฌํ์ผ๋ฉฐ ์ฝ๋ฉํ ์คํธ ํฉ๊ฒฉ์๋๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธํธ ๋์๋ฅผ ์ฝ๊ณ ์ถ๊ฐ์ ์ผ๋ก ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ๐๐ป

FIFO(First In First Out)์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ ์๋ฃ๊ตฌ์กฐ๋จผ์ ๋ค์ด์จ ๊ฒ์ด ๋จผ์ ๋๊ฐ๋ ํน์ง์ฝ์ : push์ญ์ : poppop : O(1)(์์ ์๊ฐ)push : O(1)isEmpty : O(1)(์ฝ๋ฉํ ์คํธ ํฉ๊ฒฉ์๋๊ธฐ ๋์ ์ฐธ๊ณ )N๋ช ์ ์ฌ๋์ด ์ํ์ผ๋ก ์ ์๋ค.

ํด๋น ์๋ฃ๋ ์ ํ๋ธ ์ ์ฐฌ์ ํ๊ตญ์ธ๋ ๊ต์๋ ๊ฐ์๋ฅผ ์์ฒญํ๊ณ ์ ๋ฆฌํ์ผ๋ฉฐ ์ฝ๋ฉํ ์คํธ ํฉ๊ฒฉ์๋๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธํธ ๋์๋ฅผ ์ฝ๊ณ ์ถ๊ฐ์ ์ผ๋ก ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ๐๐ป์ฝ์ ์ ๊ฐ์ฅ ์๋๋ถํฐ ์์ด๊ฒ ๋๊ณ , ๊ฐ์ฅ ๋งจ ์์(๋ง์ง๋ง์ ๋ค์ด์จ) ์๋ ๊ฐ์ด ๊ฐ์ฅ ๋จผ์ ์ญ์ ๋๋ค. (LIFO)์ฝ

index๋ก ์์์ ์์๋ฅผ ์ ๊ทผํ ์ ์๋ค.์ฐ์ฐ์ \[]๋ก ์ ๊ทผํ ์ ์๋ค. ์์์๊ฐ(O(1))์ ๊ฐ์ ์ ์ ์๋ค.์ฝ์ : push, shift์ญ์ : pop, unshift์ ํ๋ ์ ๊ทผ(์ฝ์ ,์ญ์ )๋ง ํ์ฉํ๋ค.LIFO(Last In First Out)๋ง์ง๋ง์ ๋ค์ด๊ฐ ๊ฒ์ด

ํด๋น ์๋ฃ๋ ์ ํ๋ธ ์ ์ฐฌ์ ํ๊ตญ์ธ๋ ๊ต์๋ ๊ฐ์๋ฅผ ์์ฒญํ๋ฉฐ ์ ๋ฆฌํ์ต๋๋ค. ๐๐ป ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ฐจ์ ์ธ(์์๋๋ก) ์๋ฃ๊ตฌ์กฐ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๋์ ๋ฐฉ์์์ ์ฐจ์ด๊ฐ ์์๋ฐฐ์ด์ index๋ฅผ ์ด์ฉํด ํน์ ์์น์ ๊ฐ์ ์์์๊ฐ ๋ด์ ์ฝ๊ณ ์ธ ์ ์๊ฒ ํด์ฃผ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.๋ฆฌ์คํธ๋

ํด๋น ์๋ฃ๋ ์ ํ๋ธ ์ ์ฐฌ์ ํ๊ตญ์ธ๋ ๊ต์๋ ๊ฐ์๋ฅผ ์์ฒญํ๋ฉฐ ์ ๋ฆฌํ์ต๋๋ค. ๐๐ปAlgorithm1(arrayMax): T1(n) = 2n - 1Algorithm2(sum1): T2(n) = 4n + 1Algorithm3(sum2): T3(n) = (3/2)n2 - (

ํด๋น ์๋ฃ๋ ์ ํ๋ธ ์ ์ฐฌ์ ํ๊ตญ์ธ๋ ๊ต์๋ ๊ฐ์๋ฅผ ์์ฒญํ๋ฉฐ ์์ฑ๋์ด ์์ต๋๋ค. ๐๐ป๋ชจ๋ ์ ๋ ฅ์ ๋ํด ๊ธฐ๋ณธ์ฐ์ฐ ํ์๋ฅผ ๋ํ ํ ํ๊ท (ํ์ค์ ์ผ๋ก ๋ถ๊ฐ๋ฅ)๊ฐ์ฅ ์ ์ข์ ์ ๋ ฅ(Worstcase input)์ ๋ํ ๊ธฐ๋ณธ ์ฐ์ฐ ํ์๋ฅผ ์ธก์ (worstcase time compl

ํด๋น ์๋ฃ๋ ์ ํ๋ธ ์ ์ฐฌ์ ํ๊ตญ์ธ๋ ๊ต์๋ ๊ฐ์๋ฅผ ์์ฒญํ๋ฉฐ ์์ฑ๋์ด ์์ต๋๋ค. ๐๐ป์๋ฃ๊ตฌ์กฐ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ ์ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋์ง ์ธก์ ํ๊ณ ๋น๊ตํด๋ณด์."์๋ฃ๊ตฌ์กฐ"์ "์๊ณ ๋ฆฌ์ฆ"์ ์๊ฐํ์ฌ ์ฝ๋(C, Javascript, Python ๋ฑ)๋ก ๊ตฌํ

์๋ 9์์ ํด์ฌ๋ฅผ ํ๊ณ ์ฌํด๋ถํฐ ๋ค์ ์ด์ง์ค๋น๋ฅผ ํ๊ณ ์๋ค.๐ฅ์ฌํด๋ ๋ฒ์จ ์๋ฐ๊ธฐ๊ฐ ๋๋ฌ๊ณ ํ๋ฐ๊ธฐ๋ฅผ ์๋๊ณ ์์ง๋ง ์ฌ์ ํ ์ฝ๋ฉํ ์คํธ๋ ์ด๋ ต๊ณ , ์ด๋ ฅ์๋ n๋ฒ์งธ ์์ ์ค์ด๋ฉฐ ์ํ๊ณ ์๋์ง ๋ถ์ํ๊ฑด ๋๊ฐ๋ค ๐ฅฒ์ฝ๋ฉํ ์คํธ ํฉ๊ฒฉ์ ๋๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธํธ ๋์๋ฅผ ์ถ์ฒ๋ฐ์ ์ฝ์ผ๋ฉด์

์๋ฃ (Data Structure), ์๊ณ ๋ฆฌ์ฆ(Algorithm) ์๋ฃ๊ตฌ์กฐ ์๋ฃ๋ ์ฆ data๋ฅผ ๋งํ๋ฉฐ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์ ์ฅ๊ณต๊ฐ(memory)์ด ํ์ => ๋ฐ์ดํฐ ๊ฐ์ ๋ชจ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก "์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ฝ์ ,์ญ์ , ํ์"์ ๊ฐ์ ์ฐ์ฐ์ ์ ๊ณตํ์ฌ

arr์ ์์ฐ์๋ฅผ ๋ด์ ๋ฐฐ์ด์ ๋๋ค.์ ์ i, j์ ๋ํด i โ j ์ด๋ฉด arri โ arrj ์ ๋๋ค.divisor๋ ์์ฐ์์ ๋๋ค.array๋ ๊ธธ์ด 1 ์ด์์ธ ๋ฐฐ์ด์ ๋๋ค.arr์ ์์ ์ค 5๋ก ๋๋์ด ๋จ์ด์ง๋ ์์๋ 5์ 10์ ๋๋ค. ๋ฐ๋ผ์ 5, 10์ ๋ฆฌํดํฉ๋๋ค.arr

left๋ถํฐ right์ฌ์ด์ ์๋ ์ซ์๋ฅผ ํ์ธํด์ผํ๋ฏ๋ก ๋ฐ๋ณต๋ฌธ์ผ๋ก ์์ฑํ๋ค.๊ฐ๋ ์ฑ์ ์ํด countFn์ผ๋ก ๋ฐ๋ก ํจ์๋ฅผ ๋ง๋ ๋ค.countFnํจ์๋ ์ฝ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํจ์์ด๋ค.์ฝ์์ ๊ฐ์๊ฐ ์ง์์ด๋ฉด answer์ ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ธ ๊ฐ์ ๋ํ๊ณ ํ์๋ผ๋ฉด ๋บ๋ค.

๋์ด๊ธฐ๊ตฌ๋ฅผ count๋ฒ ํ๊ฒ ๋๋ฉด ํ์ฌ ์์ ์ด ๊ฐ์ง๊ณ ์๋ ๊ธ์ก์์ ์ผ๋ง๊ฐ ๋ชจ์๋ผ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.๋จ, ๊ธ์ก์ด ๋ถ์กฑํ์ง ์์ผ๋ฉด 0์ return ํ์ธ์.์ ์ถ๋ ฅ ์์ ์ถ๋ ฅ ์ ์ค๋ช ์ด์ฉ๊ธ์ก์ด 3์ธ ๋์ด๊ธฐ๊ตฌ๋ฅผ 4๋ฒ ํ๊ณ ์ถ์ ๊ณ ๊ฐ์ด

๋ธ๋ผ์ฐ์ ์ ์ฅ์์ ์ข ๋ฅ๋ ํฌ๊ฒ Cookie์ WebStorage๋ก ๋๋ ์ง๊ณ Webstorage๋ localStorage์ sessionStorage๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.cookie๋ฅผ ์ค์ ํ๋ฉด ์ดํ ๋ชจ๋ ์์ฒญ์ ์ฟ ํค์ ๋ณด๋ฅผ ํฌํจํ์ฌ ์๋ฒ๋ก ์ ์ก๋๋ค. => ๋ถํ์ํ ํธ๋ํฝ์ ๋ฐ