์ ์ฒด ๊ธ(42)
-
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 1. ์ ํ์ ๋ ฌ
๐ ์ ํ ์ ๋ ฌ(Selection Sort)์ ํ ์ ๋ ฌ์ ๋งค ๋จ๊ณ์์ ๊ฐ์ฅ ์์ ์์๋ฅผ ์ ํํด์ ์์ผ๋ก ๋ณด๋ด๋ ์ ๋ ฌ ๋ฐฉ๋ฒ์์ผ๋ก ๋ณด๋ด์ง ์์๋ ๋ ์ด์ ์์น๊ฐ ๋ณ๊ฒฝ๋์ง ์์์๊ฐ ๋ณต์ก๋ O(N²)๋ก ๋นํจ์จ์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋ ์ถ์ฒ: https://fastcampus.co.kr/dev_online_upjscodingtest https://ko.wikipedia.org/wiki/%EC%84%A0%ED%83%9D_%EC%A0%95%EB%A0%AC ์ ํ ์ ๋ ฌ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ์ ํ ์ ๋ ฌ(้ธๆๆดๅ, selection sort)์ ์ ์๋ฆฌ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํ๋๋ก, ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์ด๋ฃจ์ด์ง๋ค. ์ฃผ์ด์ง ๋ฆฌ์คํธ ์ค์ ์ต์๊ฐ์ ์ฐพ๋๋ค. ๊ทธ ๊ฐ์ ๋งจ ์์ ์ko.w..
2024.10.28 -
[์๋ฃ๊ตฌ์กฐ] ๊ทธ๋ํ(Graph)์ ํํ
๐ ๊ทธ๋ํ๊ทธ๋ํ๋ ์ฌ๋ฌผ์ ์ ์ (vertex)๊ณผ ๊ฐ์ (edge)์ผ๋ก ๋ํ๋ด๊ธฐ ์ํ ๋๊ตฌ๊ทธ๋ํ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌํ ๊ฐ๋ฅ์ธ์ ํ๋ ฌ(adjacency matrix): 2์ฐจ์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ธ์ ๋ฆฌ์คํธ(adjacency list): ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์๐ ์ธ์ ํ๋ ฌ(Adjacency Matrix)์ธ์ ํ๋ ฌ์์๋ ๊ทธ๋ํ๋ฅผ 2์ฐจ์ ๋ฐฐ์ด๋ก ํํ๋ฌด๋ฐฉํฅ ๋ฌด๊ฐ์ค์น ๊ทธ๋ํ (์๊ธฐ์์ ๊ณผ ๊ฐ์ ์ด ์ฐ๊ฒฐ๋์ด์์ง ์์ ๋ 0์ผ๋ก ํ๊ธฐ)๋ชจ๋ ๊ฐ์ ์ด ๋ฐฉํฅ์ฑ์ ๊ฐ์ง์ง ์๋ ๊ทธ๋ํ๋ฅผ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ๋ผ๊ณ ํ๋ค. ๋ฌด๋ฐฉํฅ ๋น๊ฐ์ค์น ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋ ์ฐ๊ฒฐ๋์ด ์๋ ์ํฉ์ ์ธ์ ํ๋ ฌ๋ก ์ถ๋ ฅํ ์ ์๋ค.๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์ ํ์์ง ์์๋ฐฉํฅ ๊ฐ์ค์น ๊ทธ๋ํ๋ชจ๋ ๊ฐ์ ์ด ๋ฐฉํฅ์ ๊ฐ์ง๋ ๊ทธ๋ํ๋ฅผ ๋ฐฉํฅ ๊ทธ๋ํ๋ผ๊ณ ํ๋ค.๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์..
2024.10.27 -
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree)์ ์ฐ์ ์์ ํ(Priority Queue)
๐ ํธ๋ฆฌ(Tree)ํธ๋ฆฌ๋ ๊ฐ๊ณ๋์ ๊ฐ์ด ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํํํ ๋ ์ฌ์ฉํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋๋ฌด(tree)์ ํํ๋ฅผ ๋ค์ง์ ๊ฒ๊ณผ ๊ฐ์ด ์๊น๋ฃจํธ ๋ ธ๋ (root node) : ๋ถ๋ชจ๊ฐ ์๋ ์ต์์ ๋ ธ๋๋จ๋ง ๋ ธ๋ (leaf node): ์์์ด ์๋ ๋ ธ๋ํธ๋ฆฌ์์๋ ๋ถ๋ชจ์ ์์ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ๋ค.ํ์ ๊ด๊ณ: 5 ๊ฐ์ ๊ฐ์ง๋ ๋ ธ๋์ 23 ๊ฐ์ ๊ฐ์ง๋ ๋ ธ๋์ฌ์ด์ ๊ด๊ณ๊น์ด(depth): ๋ฃจํธ ๋ ธ๋์์์ ๊ธธ์ด(length)์ด๋ ๊ธธ์ด๋ ์ถ๋ฐ ๋ ธ๋์์ ๋ชฉ์ ์ง ๋ ธ๋๊น์ง ๊ฑฐ์ณ์ผ ํ๋ ๊ฐ์ ์ ์๋ฅผ ์๋ฏธํธ๋ฆฌ์ ๋์ด(height)๋ ๋ฃจํธ ๋ ธ๋์์ ๊ฐ์ฅ ๊น์ ๋ ธ๋๊น์ง์ ๊ธธ์ด๋ฅผ ์๋ฏธ ๐ ์ด์ง ํธ๋ฆฌ(Binary Tree)์ด์ง ํธ๋ฆฌ๋ ์ต๋ 2๊ฐ์ ์์์ ๊ฐ์ง ์ ์๋ ํธ๋ฆฌ๋ฅผ ๋งํจ๐ ์ฐ์ ์์ ํ(Priority Queue)์ฐ์ ์์์ ๋ฐ๋ผ์..
2024.10.27 -
[์๋ฃ๊ตฌ์กฐ] ํ(Queue)
๐ ํ(Queue)๋จผ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ์ถ์ถ๋๋ ์๋ฃ๊ตฌ์กฐ ex) ์ํ์ฐฝ๊ตฌ, ์ค ์๋ ๊ฒ๊ณตํํ ์๋ฃ๊ตฌ์กฐ๐ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ํ ๊ตฌํ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๊ตฌํํ ๋๋ ๋จธ๋ฆฌ(head)์ ๊ผฌ๋ฆฌ(tail)๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋ค. ์ถ์ฒ: https://fastcampus.co.kr/dev_online_upjscodingtest JavaScript ์ฝ๋ฉํ ์คํธ 131๊ฐ ์์ & CS์ง์์ผ๋ก ๋๋ด๊ธฐ | ํจ์คํธ์บ ํผ์ค25์๊ฐ ๋๋น ๊ณผ์ / '์ฝํ ๋ ์ ๋' ์ ํ๋ฒ ๊ฐ์ฌ๋๊ป ํต์ฌ๋ง ๋ฐฐ์ฐ๊ณ ๋น ๋ฅด๊ฒ ํฉ๊ฒฉํ์ธ์.fastcampus.co.kr
2024.10.27 -
[์๋ฃ๊ตฌ์กฐ] ์คํ(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