๊ฐ์ฅ ๋จผ ๋ ธ๋ https://programmers.co.kr/learn/courses/30/lessons/49189 ์ฝ๋ #include #include #include #include #include using namespace std; int solution(int n, vector edge) { int answer = 0; map linked_list; set list; list.insert(1); // ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ int size = edge.size(); for(int i=0; i
๋ผ๋ฉด๊ณต์ฅ https://programmers.co.kr/learn/courses/30/lessons/42629# ์ฝ๋ #include #include #include using namespace std; vector node; int solution(int stock, vector dates, vector supplies, int k) { int answer = 0; int day = stock; int size = dates.size(); for (int i = 0; i < size; i++) { node.push_back(make_pair(dates[i], supplies[i])); } while (day < k) { int idx = 0; int max_idx = 0; while (idx < nod..
๋นํธ ์กฐ์ ๊ฐ๋ ๋นํธ(bit)๋ 0๊ณผ 1์ ๊ฐ์ ๊ฐ์ง ์ ์๋ ๋ฐ์ดํฐ์ ๋จ์์ด๋ค. 4bit๋ฅผ ๋ชจ์ ๋จ์๋ฅผ ๋๋ธ(nibble)์ด๋ผ ๋ถ๋ฅด๊ณ , 8bit๋ฅผ ๋ชจ์ ๋จ์๋ฅผ ๋ฐ์ดํธ(byte)๋ผ๊ณ ๋ถ๋ฅธ๋ค. 2byte๋ฅผ ๋ชจ์ ๋จ์๋ ์ผ๋ถ ์ ์ํต์ ๊ธฐ๊ธฐ์์ ์๋(word)๋ผ๊ณ ํ๋ค. ๊ตฌํ C++์์๋ ๋นํธ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด์ ์ด๋ผ๋ ํค๋๋ฅผ ํฌํจํด์ ์ฌ์ฉํ๋ค. ์ฐ์ฐ C++์์ ๋นํธ์ฐ์ฐ๋ค์ ์์์ ์ธ๊ธํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฝ๊ฒ ๊ฐ์ ธ๋ค ์ธ ์ ์์ง๋ง, ๊ฐ๋ ๊ณต๋ถ ์ธก๋ฉด์์ ๊ทธ๋ฅ ๊ตฌํ๋ ํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ๋ฒ๋ ์ตํ๋๋ คํ๋ค. ๋ฉ๋ชจ๋ฆฌ ์์ ๋ณ์๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด 1byte ๋จ์๋ก ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์, bit ๋จ์์ ์๋ฃํ์ ์๋ค. ๋ค๋ง bool ํ์ ๋ฉ๋ชจ๋ฆฌ ์์์ 1byte๋ฅผ ์ฐจ์งํ์ง๋ง ๊ฐ๋ฅํ ๊ฐ์ด true ํน์ false ๋ฐ์ ์์ผ๋ฏ๋ก ์ด๋ฅผ ์ด์ฉ..
๊ตฌ์กฐ์ฒด ๊ตฌ์กฐ์ฒด๋ ๋ฐฐ์ด๊ณผ๋ ๋ค๋ฅด๊ฒ ๋ค๋ฅธ ์๋ฃํ์ ๋ณ์๋ค์ ๋ชจ์์ ํ๋์ ๋จ์๋ก ํํํ๋ ์๋ฃํ์ด๋ค. ์ฉ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๊ทธ๋ํ์์ ๋ ธ๋๋ฅผ ๋ํ๋ผ ๋, ๋ฐ์ดํฐ์ ํฌ์ธํฐ ๋ถ๋ถ์ด ์กด์ฌํ๋ค. ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ํฌ์ธํฐ ๋ถ๋ถ์ ๊ฐ๊ฐ ๊ตฌ์ฑํ์ฌ ํ๋์ ์๋ฃํ์ผ๋ก ๋ง๋ค์ด์ค ์ ์๋ค. ์ด ๋, ํฌ์ธํฐ๋ ํด๋น ๊ตฌ์กฐ์ฒด์ ํฌ์ธํฐํ์ด๋ฏ๋ก ์ด ๊ตฌ์กฐ์ฒด๋ ์์ฒด ์ฐธ์กฐ ๊ตฌ์กฐ์ฒด๊ฐ ๋๋ค. C++ struct Node { int value; Node* pointer; // ์์ฒด ์ฐธ์กฐ ๊ตฌ์กฐ์ฒด }; int main() { Node A; // ๊ตฌ์กฐ์ฒด ์ ์ธ A.value = 4; Node* Ap = A.pointer; // . ์ฐ์ฐ์๋ก ์ ๊ทผ int Avalue = A.value; Ap = A; Avalue = Ap->value; // ํฌ์ธํฐ๋ก ..
ํ ์ฉ๋ ๊ตฌํ ์ข ๋ฅ ์ฐ์ฐ ์ ๋ ฌ ํ ํ์ ์ถ์์ ์๋ฃํ์ธ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. partial-ordering (๋ถ๋ถ ์ ๋ ฌ)์ ๋ง์กฑํ๋ left-complete binary tree (์ข์ธก ์์ ์ด์ง ํธ๋ฆฌ) ์ด๋ค. ๋ถ๋ถ ์ ๋ ฌ์ ๋ง์กฑํ๋ค๋ ๋ง์ '๋ถ๋ชจ ๋ ธ๋์ ์์๋ ธ๋' ๊ฐ์๋ ํน์ ๋์๊ด๊ณ ์ฑ๋ฆฝํ์ง๋ง, 'ํ์ ๋ ธ๋'๊ฐ์๋ ํด๋น ๋์๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ์ง ์๋๋ค๋ ๋ป์ด๋ค. ์ด์ง ํ์ ํธ๋ฆฌ์์๋ ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์์ง๋ง ํ ํธ๋ฆฌ์์๋ ํ์ฉํ๋ค. ์ฉ๋ ํ์ ์ถ์์ ์๋ฃํ์ธ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ๋ฉด ์ฝ์ ๊ณผ ์ญ์ ์ฐ์ฐ ์ค ํ๋๊ฐ O(n)์ผ ์ ๋ฐ์ ์๋ค. ํ์ง๋ง ํ์ ์ด์ฉํ๋ฉด ๊ฐ์ฅ ํฐ ๊ฐ์ด๋ ๊ฐ์ฅ ์์ ๊ฐ์ ๋ ๋ค O(logn)๋ง์ ๋น ..
ํธ๋ฆฌ ์ฉ๋ ์ฉ์ด ์ ๋ฆฌ ์ข ๋ฅ ์ด์ง ํธ๋ฆฌ ์ผ๋ฐ ํธ๋ฆฌ ์ค๋ ๋ ์ด์ง ํธ๋ฆฌ ๊ตฌํ ๋ฐฐ์ด ํํ๋ฒ ์ฐ๊ฒฐ๋ฆฌ์คํธ ํํ๋ฒ ํธ๋ฆฌ ํ์ฉ ํ์ ์งํฉ ํํ ํํ๋ง ์ฝ๋ ํธ๋ฆฌ ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ํ ์ข ๋ฅ๋ก ๋ฌด๋ฐฉํฅ ์ฐ๊ฒฐ ๋น์ํ ๊ทธ๋ํ(Connected Undirected Acyclic Graph)์ด๋ค. ๋ฃจํธ ๋ ธ๋๊ฐ ์กด์ฌํ๊ณ , ๋ฃจํธ ๋ ธ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ธ๋์ in-degree๊ฐ 1์ธ ๋ฐฉํฅ๊ทธ๋ํ๋ผ๊ณ ๋งํ ์๋ ์๋ค. ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ ๊ทธ๋ํ์ ํ ์ข ๋ฅ์ด๋ฏ๋ก ๋น์ ํ ์๋ฃ๊ตฌ์กฐ์ ์ํ๋ค. ์ฉ๋ ๊ณ์ธต์ ์ธ ์กฐ์ง์ ํํํ๊ธฐ ์ํด ์ฌ์ฉ๋๊ฑฐ๋, ์ปดํจํฐ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ / ์ธ๊ณต์ง๋ฅ์ decision tree ๋ฑ์ ์ด์ฉ๋๋ค. ๋ํ ์๋ฃ์ ํ์ / ์ ๋ ฌ / DB ๊ตฌ์ฑ์ด๋ ๋ถ์๊ตฌ์กฐ์ ์ค๊ณ ๋ฑ์์๋ ๋ค์ํ๊ฒ ์ด์ฉ๋๋ค. (๊ฒฐ์ ํธ๋ฆฌ)(์ด์งํ์) ์ฉ์ด ์ ๋ฆฌ ๋ ธ๋ ..
๊ทธ๋ํ ์ฉ๋ ์ฉ์ด ์ ๋ฆฌ ๊ธฐ๋ณธ ์ฌํ ๊ตฌํ ์ธ์ ํ๋ ฌ ์ธ์ ๋ฆฌ์คํธ ๋น๊ต ์ฐ์ฐ ๋ถ๋ฅ ๋ฐฉํฅ์ฑ์ ๋ฐ๋ฅธ ๋ถ๋ฅ ์ฐ๊ฒฐ์ ๋ฐ๋ฅธ ๋ถ๋ฅ ์ฌ์ดํด์ ๋ฐ๋ฅธ ๋ถ๋ฅ ํน์ํ ๊ทธ๋ํ ํ์ ๋์ถ๋ ๋ฌธ์ ๋ค ๊ด๋ จ ์๊ณ ๋ฆฌ์ฆ ์ฐธ๊ณ ๊ทธ๋ํ ๊ทธ๋ํ๋ '๋ ธ๋'์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ '๊ฐ์ '์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ง๊ธ๊น์ง์ ์ดํด๋ณธ ์๋ฃ๊ตฌ์กฐ๋ค(๋ฆฌ์คํธ, ์คํ, ํ ๋ฑ)๊ณผ๋ ๋ฌ๋ฆฌ ๊ทธ๋ํ๋ ๋น์ ํ ์๋ฃ๊ตฌ์กฐ ์ด๋ค. ์ฉ๋ ๊ทธ๋ํ๋ ์ผ์์ํ์์ ์ฐ๊ฒฐ๋์ด์๋ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ ๋ ์ฌ์ฉ๋๋ค. ์๋ก ์ง๋๋ ์งํ์ฒ ๋ ธ์ ๋, ์ ๊ธฐํ๋ก, ๋๋ก ๋ฑ์ ๋ค ์ ์๋ค. ๋ํ ์ปดํจํฐ ์ธ๋ถ์ ๊ณต์์๋ ํต์ ๋คํธ์ํฌ ๋ถ์ผ์์๋ ์ฐ์ด๋ฉฐ, ๋ ผ๋ฆฌํ๋ก๋ฅผ ์ค๊ณํ๊ณ ๋ถ์ํ๋ ๋ฐ์๋ ์ฌ์ฉ๋๋ค. ์ต๊ทผ์๋ ์น์ฌ์ดํธ์ ๋งํฌ ์ฐ๊ฒฐ(Page Rank)์ด๋ SNS ์์ ์น๊ตฌ๊ด๊ณ๋ฅผ ํํํ๋ ๋ฐ์๋ ์ฌ์ฉ๋..
์๋ก ์๋ฃ๊ตฌ์กฐ ์๋ฃ๊ตฌ์กฐ๋ ์ปดํจํฐ์์ ์๋ฃ๋ฅผ ์ ๋ฆฌํ๊ณ ์กฐ์งํํ๋ ๋ค์ํ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค. ํ๋ก๊ทธ๋จ์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ด๋ฃจ์ด์ ธ์๊ธฐ ๋๋ฌธ์, ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ๋์ ๊ณต๋ถํด์ผํ๋ ๋ถ์ผ์ด๋ค. ์๋ฃ๊ตฌ์กฐ๋ ๋จผ์ ๋จ์ ์๋ฃ๊ตฌ์กฐ์ ๋ณตํฉ ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌ๋ถ๋๊ณ , ๋ณตํฉ ์๋ฃ๊ตฌ์กฐ์๋ ์ ํ ๊ตฌ์กฐ์ ๋น์ ํ ๊ตฌ์กฐ๊ฐ ์๋ค. ์์ฐจ์ ์ผ๋ก ์ดํด๋ณด์. ๋ฐฐ์ด, ๋ฌธ์์ด ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์คํ, ํ, ๋ฑ ๊ทธ๋ํ ํธ๋ฆฌ ํ ๊ตฌ์กฐ์ฒด
Comment