์ ์ฒด ๊ธ(46)
-
[์๋ฃ๊ตฌ์กฐ] ์คํ(Stack)
๐ ์คํ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๋์ค์ ๋๊ฐ๋ ์๋ฃ๊ตฌ์กฐ๋ฐ์ค๊ฐ ์์ธ ํํ๋ฅผ ์คํ(Stack)์ด๋ผ๊ณ ํ๋ค.์๋ก์ด ์์๋ฅผ ์ฝ์ ํ ๋๋ ๋ง์ง๋ง ์์น์ ์ฝ์ -> ์๋ก์ด ์์๋ฅผ ์ญ์ ํ ๋ ๋ง์ง๋ง ์์๊ฐ ์ญ์ ๐ ์คํ ์ฐ์ฐ ์ข ๋ฅPush, Pop, Top(๋ง์ง๋ง์ ๋ค์ด์จ ์์), Empty(์คํ์ด ๋น์์๋์ง ํ์ธ) - ์๊ฐ๋ณต์ก๋ O(1)๐ JS์์ ์คํ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ - ๋ฐฐ์ด ์๋ฃํjs์ ๊ธฐ๋ณธ์ ์ธ ๋ฐฐ์ด ์๋ฃํ ๋ ๊ฐ์ง ๋ฉ์๋ ์ ๊ณต -> push()๋ฉ์๋, pop()๋ฉ์๋ ์ถ์ฒ: https://fastcampus.co.kr/dev_online_upjscodingtest JavaScript ์ฝ๋ฉํ ์คํธ 131๊ฐ ์์ & CS์ง์์ผ๋ก ๋๋ด๊ธฐ | ํจ์คํธ์บ ํผ์ค25์๊ฐ ๋๋น ๊ณผ์ / '์ฝํ ๋ ์ ๋' ์ ํ๋ฒ ๊ฐ์ฌ๋๊ป ํต์ฌ๋ง ..
2024.10.27 -
[์๋ฃ๊ตฌ์กฐ] ๋ฐฐ์ด(Array)๊ณผ ๋ฆฌ์คํธ(List)
๐ ๋ฐฐ์ด(Array)๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ฌ๋ฌ ๊ฐ์ ๋ณ์๋ฅผ ๋ด๋ ๊ณต๊ฐ์ผ๋ก ์ดํด ๊ฐ๋ฅ๋ฐฐ์ด์ ์ธ๋ฑ์ค(index)๊ฐ ์กด์ฌ, ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํน์ ํ ์ธ๋ฑ์ค ์ง์ ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅ -> ์ํ ์๊ฐ: O(1)์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ ๋ฐฐ์ด๋ก ์ ํด์ ธ์์์ฅ๋จ์ ์บ์ ํํธ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ, ์กฐํ๊ฐ ๋น ๋ฅด๋ค.๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง์ ํด์ผ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ฏ๋ก, ๋ฐ์ดํฐ์ ์ถ๊ฐ ๋ฐ ์ญ์ ์ ํ๊ณ๊ฐ ์๋ค.๐ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List)๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ ํฌ๊ธฐ๊ฐ ์ ํด์ ธ ์์ง ์๊ณ , ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ ๋์ ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฅ๋จ์ ์ฅ์ : ํฌ์ธํฐ๋ฅผ ํตํด ๋ค์ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๊ฐ๋ฆฌํจ๋ค๋ ์ ์์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐํธ๋จ์ : ํน์ ๋ฒ์งธ์ ์์๋ฅผ ๊ฒ์ํ ๋๋ ์์์๋ถํฐ ์์๋ฅผ ์ฐพ์์ผ ํ๋ฏ๋ก, ๋ฐ์ดํฐ ๊ฒ์ ์๋๊ฐ ๋๋ฆฌ๋ค. ๐ ์ฝ๋ฉ ํ ์คํธ๋ฅผ ..
2024.10.27 -
์๋ฃ๊ตฌ์กฐ
๐๋ค์์ ์๋ฃ(Data)๋ฅผ ๋ด๊ธฐ ์ํ ๊ตฌ์กฐ์๋ฃ๊ตฌ์กฐ์ ํ์์ฑ์ ๋ํด์ ์ดํดํ ํ์๊ฐ ์๋ค์ฑ๋ฅ๋น๊ต: ์๋ฃ๊ตฌ์กฐ/์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ์ ๋ํด ์ดํดํ ํ์๊ฐ ์๋ค.์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๋ฉด ๋ถํ์ํ๊ฒ ๋ฉ๋ชจ๋ฆฌ์ ๊ณ์ฐ์ ๋ญ๋นํ๋ค. ๐์ ํ ๊ตฌ์กฐํ๋์ ๋ฐ์ดํฐ ๋ค์ ๋ค๋ฅธ ๋ฐ์ดํฐ๊ฐ ํ๋ ์กด์ฌํ๋ ์๋ฃ๊ตฌ์กฐ๋ฐ์ดํฐ๊ฐ ์ผ๋ ฌ๋ก ์ฐ์์ ์ผ๋ก(์์ฐจ์ ์ผ๋ก) ์ฐ๊ฒฐ๋์ด ์๋ค.- ๋ฐฐ์ด- ์ฐ๊ฒฐ ๋ฆฌ์คํธ (linked list)- ์คํ- ํ, ๋ฑ(deque) ๐๋น์ ํ ๊ตฌ์กฐํ๋์ ๋ฐ์ดํฐ ๋ค์ ๋ค๋ฅธ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๊ฐ ์ฌ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฐ์ดํฐ๊ฐ ์ผ์ง์ ์์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ง ์์๋ ๋๋ค- ํธ๋ฆฌ- ๊ทธ๋ํ (BFS, DFS ๋ฑ) ๋ฌธ์ ์ํฉ์ ๋ง๋ ์ ์ ํ ์๋ฃ๊ตฌ์กฐ๊ฐ ์ฌ์ฉ๋์ด์ผ ํ๋ค. ์๊ฐ ๋ณต์ก๋- ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ๋๋ ์ฐ์ ํ์๋ฅผ ์ธก์ ํ๋ค.๊ณต๊ฐ ..
2024.10.25 -
์ง์ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ npm package ๋ฐฐํฌํ๊ธฐ (๋ชจ๋ ๋ฐฐํฌ, ๋ฒ์ ์ ํ ๋ฐฐํฌ์คํจ์ ์บ์ ์ญ์ )
๐ ์์ ์ด ๋ง๋ ๋ชจ๋๋ก npm package ๋ฐฐํฌํ๋ ๋ฒ์ ์ค๋ช ํ๋ค. git repository ๋ฅผ node ๋ก ๋ง๋ค์ด์ค ํ clone์ ํ์์ต๋๋ค. ๊ทธ ๋ค์ index.js ํ์ผ์ ๋ง๋ค๊ณ ๊ฐ๋จํ๊ฒ sum ํจ์๋ฅผ ๋ง๋ ๋ค module.exports ๋ฅผ ํ์์ต๋๋ค. module.exports ๋ ๋ง๋ค ์ ์๊ณ import ๋ฅผ ํด์ค๋ ค๋ฉด export ๋ก ๋ง๋ค์ด์ค์ผ ํฉ๋๋ค. npm init ์ -y๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด package.json ํ์ผ์ ๋ง๋ค์ด ์ค๋๋ค. ๊ทธ ๋ค์ npm login ์ ํด์ค ํ npm publish ๋ฅผ ํด์ฃผ๋ฉด ๋ฐฐํฌ๊ฐ ๋ฉ๋๋ค. access๋ฅผ ์ค์ ํด์ฃผ์ง ์์์ 'You muse sign up for private packages' ๋ผ๊ณ ์๋ฌ ๋ฌธ๊ตฌ๊ฐ ๋์์ต๋๋ค. ํ ์คํธ ์ฉ๋๋ก ์์ ํ๊ฒ์ด๊ธฐ ๋๋ฌธ์ acc..
2024.02.03 -
Javascript debugger (1) - ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฝ๋ฉ ์๋ํฐ๋ก ์ฌ์ฉํ๊ธฐ
๐ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฝ๋ฉ ์๋ํฐ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ์ฐ์ ๋ด ์ปดํจํฐ์ ํด๋๋ฅผ ๋ง๋ค์ด์ค๋ค. ๊ฐ๋ฐ์ ๋ชจ๋๋ฅผ ํจ ํ์ Source ํญ์ผ๋ก ๋ค์ด๊ฐ์ ํด๋ ๋๋กญํ์ฌ ์ถ๊ฐํด์ค๋ค. '์์ ํ ์์ธ์ค๋ฅผ ์์ฒญํฉ๋๋ค. ' ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ณด์ด๋ฉด ์น์ธ ๋ฒํผ์ ๋๋ฌ์ค์ผ ์์ ์ ํ ์ ์๋ค. ์ค๋ฅธ์ชฝ์ ๋ณด๋ฉด web ํด๋๊ฐ ์ถ๊ฐ ๋์๊ณ ํด๋น ํด๋ ์๋์ test.html ํ์ผ์ ์ถ๊ฐํด์ฃผ์๋ค. ์ด์ ์์ ์ด ๊ฐ๋ฅํ๋ค. script ํ๊ทธ๋ฅผ ์ถ๊ฐํด์ JS ํ ์คํธ๋ฅผ ํด๋ณด์๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ์ ํ๋ฉด test.html ์ผ์ชฝ์ * ์ด ํ์๊ฐ ์๊ธด๋ค. ๐ VS Code ์์๋ ์์ ํ ์ ์์ง๋ง Node ๋ณด๋ค๋ ๋ธ๋ผ์ฐ์ ์์ ํ ์คํธ ํ๋ ๊ฒ์ด ๋ ํธํ๊ณ Scope ๋ Closure, Call Stack ๋ฑ ํ์ธ ํ ์ ์์ด์ ๋ ํธ๋ฆฌํ๋ค. ์ถ์ฒ: ๋ธ๋ผ์ฐ..
2024.02.01 -
JavaScript (6) - ํธ์ด์คํ (Hoisting), ๋ณ์ ์ ์ธ์ ์คํ ์์
๐ ํธ์ด์คํ (Hoisting): ๋์ด ์ฌ๋ฆฌ๋ค. ๊ฒ์ํ๋ค. ํธ์ด์คํ ์ ๋์ด ์ฌ๋ฆฐ๋ค๋ ๋ป์ ๊ฐ๊ณ ์๋ค. JavaScript ์์ ํธ์ด์คํ ์ ๋ฌด์์ ์๋ฏธํ ๊น? ์ฐ์ ์๋ ์ฝ๋๋ฅผ ์ดํด๋ณด์. console.log(score); // ๋ณ์ ์ฐธ์กฐ var score; // ๋ณ์ ์ ์ธ๋ฌธ ๋ณ์ ์ ์ธ๋ฌธ ๋ณด๋ค ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ ์ฝ๋๊ฐ ์์ ์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ธํฐํ๋ฆฌํฐ์ ์ํด ํ ์ค์ฉ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ฏ๋ก console.log ๊ฐ ๊ฐ์ฅ ๋จผ์ ์คํ๋ ๊ฒ์ด๋ค. ์ฐธ์กฐ์๋ฌ ReferenceError ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ์์ํ์ง๋ง, undefined๊ฐ ์ถ๋ ฅ๋๋ค. ๊ทธ ์ด์ ๋ ๋ณ์ ์ ์ธ์ด ์์ค์ฝ๋๊ฐ ํ ์ค์ฉ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ ์์ ๋ฐํ์ runtime์ด ์๋๋ผ ๊ทธ ์ด์ ๋จ๊ณ์์ ๋จผ์ ์คํ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ณ์ ์ ์ธ์ ์์ค์ฝ๋์ ์ด๋์ ์..
2023.12.04 -
[์๋ฃ๊ตฌ์กฐ] Linked List (์ฐ๊ฒฐ ๋ฆฌ์คํธ) - ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
๐ ์๋ฃ๊ตฌ์กฐ ๋ฐ์ดํฐ๋ฅผ ์ํฉ์ ๋ง๊ฒ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๊ด๋ฆฌํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ๋ค. ๐ Linked List ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ์ฌ๋ฌ๊ฐ์ node๋ก ์ด๋ฃจ์ด์ ธ์๋ค. pointer ์ ์ํด ๋ค์ node ๋ฅผ ์ฐ๊ฒฐํ๋ค. ์ด๋ฅผ ํตํด Linked List ๋ ๋ฐ์ดํฐ ์ฝ์ /์ญ์ ์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ฌ ์ ๋ ฌํ์ง ์์๋ ๋๋ค. Linked List Array ๋์ ์๋ฃ๊ตฌ์กฐ ์ ์ ์๋ฃ๊ตฌ์กฐ ์์ ์ ๊ทผ ๋ถ๊ฐ, ์์ฐจ์ ์ผ๋ก ์ ๊ทผํด์ผ ํจ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๋ก ์์ ์ ๊ทผ ๊ฐ๋ฅ ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์ ์ ์ฉ์ด ์ ๊ทผ๊ณผ ํ์์ ์ฉ์ด ํฌ๊ธฐ์ ์ ํ์ด ์์ ์์ ๋ถ๊ฐ๋ฅ, ๋ฐฐ์ด ํฌ๊ธฐ ์ด์์ ๋ฐ์ดํฐ ์ ์ฅ ๋ถ๊ฐ๋ฅ ๐ Singly Linked List ๋ค์ ๋ ธ๋์ ๋ํ ์ฐธ์กฐ๋ง์ ๊ฐ์ง ๊ฐ์ฅ ๋จ์ํ ํํ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ด..
2023.06.21 -
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ฐ๊ธฐ (JS)
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ฐ๊ธฐ JavaScript ๐ ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด "hello"์์ ๊ฐ ๋ฌธ์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ์ฉ ๋ฐ๊ณ ๋ง์ง๋ง ๋ฌธ์๋ ๋งจ ์์ผ๋ก ์ด๋์ํค๋ฉด "ohell"์ด ๋ฉ๋๋ค. ์ด๊ฒ์ ๋ฌธ์์ด์ ๋ฏผ๋ค๊ณ ์ ์ํ๋ค๋ฉด ๋ฌธ์์ด A์ B๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, A๋ฅผ ๋ฐ์ด์ B๊ฐ ๋ ์ ์๋ค๋ฉด ๋ช ๋ฒ ๋ฐ์ด์ผ ํ๋์ง ํ์๋ฅผ returnํ๊ณ ๋ฐ์ด์ B๊ฐ ๋ ์ ์์ผ๋ฉด -1์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ ์ ํ์ฌํญ 0
2022.11.28