์๋ฃ๊ตฌ์กฐ15 [Java] Graph (Adjacency Matrix, Adjacency List) ์ ์ (Vertex)๊ณผ ๊ฐ์ (Edge)๋ก ๊ตฌ์ฑ๋ ๊ฒ, Graph(G) = (Vertex(V), Edge(E)) Graph ์ฉ์ด ์ ์ (Vertex) - ๋ ธ๋, ํน์ ํ ์ ์๋ ์ค์ฒด๊ฐ์ (Edge) - ์ ์ ๊ฐ ์ด์ด์ ธ ์๋ ์ ๊ฐ์ค์น(Weight) - ์ ์ ๊ฐ์ ๊ฑฐ๋ฆฌ, ๋น์ฉ (๊ฐ์ ์ ๊ธธ์ด๋ผ๊ณ ์๊ฐํด๋ ์ข์)๊ฒฝ๋ก(Path) - ์ถ๋ฐ ์ ์ ์์ ๋์ฐฉ ์ ์ ๊น์ง์ ๊ฑฐ์ณ ๊ฐ ์์์ํ(Cycle) - ๊ฒฝ๋ก์ ์ถ๋ฐ ์ ์ ๊ณผ ๋์ฐฉ ์ ์ ์ด ๊ฐ์ ๊ฒฝ์ฐ์ฐจ์(Degree) - ์ ์ ์ ๋ถ์ ๊ฐ์ ์์ง์ ์ฐจ์(In-Degree) - ์ ์ ์ผ๋ก ๋ค์ด์ค๋ ๊ฐ์ ์์ง์ถ ์ฐจ์(Out-Degree) - ์ ์ ์์ ๋๊ฐ๋ ๊ฐ์ ์Graph ์ข ๋ฅ ์ ํฅ ๊ทธ๋ํ(Directed Graph) - ํน์ ์ ์ ์์ ํน์ ์ ์ ์ผ๋ก ์ด๋ํ๋ ๊ทธ๋ํ๋ฌดํฅ ๊ทธ๋ํ(UnDire.. 2024. 7. 9. [Java] Binary Search Tree ์ ํฌ์คํ ์์ ์์ฑํ Tree์ ๋นํจ์จ์ ์ธ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์๊ธด ์ด์ง ํ์ ํธ๋ฆฌ๋ค.ํธ๋ฆฌ๋ ์ฌ๋ฌ ์์์ ๊ฐ์ง ์ ์์ง๋ง ์ด์ง ๊ฒ์ ํธ๋ฆฌ์์๋ Binary Tree์ ๊ฐ๋ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์์์์ด Left, Right๋ง ์กด์ฌํ๋ค. ์ด๋ฅผ ํตํด Log_2 (N) ๋ฒ๋ง์ ๋ชจ๋ ์ํ์ ๋๋ผ ์ ์๋ค. ๋, inorder๋ฅผ ์ํ ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค. package com.study.datastructrue.nonlinear.binarysearchtree;public class Node { int value; Node left; Node right; public Node(int value) { this.value = value; left = null;.. 2024. 7. 8. [Java] Tree ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ์ข ๋ฅ : Tree, Binary Tree, Binary Serach Tree, Balanced Binary Serach Tree, Heap, Trie์ด๋ฒ ํฌ์คํธ์์๋ ๊ธฐ๋ณธ์ ์ธ Tree์ ๋ํด์๋ง ์์ฑํด๋ณด์. Tree๋ ? Node์ Edge๋ก ๊ตฌ์ฑ๋ ๋ฐฉํฅ์ด ์กด์ฌํ๋ ๋น์ํ Graph์ ํ ์ข ๋ฅ์ด๋ค. ๊ทธ๋์ DAG(Directed Acyclic Graphs)๋ผ๊ณ ๋ ํ๋ค.๊ทธ๋ผ Graph๋ก ๋ถ๋ฅํ๋ฉด ๋์ง ์ Tree๋๋ ์์ฌ์ ํ๊ฒ ๋๋ค.Tree๋ Graph์์ ๋ช๊ฐ์ง ํน์ฑ์ ๋ ๊ฐ์ง๋ค. 1. ๋ฃจํธ ๋ ธ๋๊ฐ ํ๋ ์กด์ฌํ๋ค.2. ๋ถ๋ชจ ๋ ธ๋๋ ํ๋๋ฐ์ ์กด์ฌํ์ง ์๋๋ค.3. ๋ ธ๋๋ 0๊ฐ ์ด์์ ์์์ ๊ฐ์ง๊ณ ์๋ค.4. ์์์ด 0๊ฐ์ธ ๊ฒฝ์ฐ ๋จ๋ง๋ ธ๋(Leaf Node)๋ผ๊ณ ํ๋ค.5.. ์ ํน์ฑ์ ์งํค๋ .. 2024. 7. 7. 8. ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก (PCB, Process Control Block) PCB๋? ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก์ ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ํ๋์ ๋จ์์ด๋ค. PCB ํ๋์๋ ํ๋ก์ธ์ค ์ ๋ณด(PID, PPID, Process Status, ... )๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ํด๋น ๋ด์ฉ์ ์ธ์ฐ๊ณ ์์ ํ์๋ ์๋ค. ์ค์ ์์คํ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ฒ ๋ ๋, ์ด ์ ๋ณด๋ฅผ ์ปจํธ๋กคํ๊ฒ ๋๋ค. PCB๊ฐ ์ ํ์ํ ๊น? ๋ค์ค ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ ์๊ฐํด๋ณด์. ์ค๊ฐ์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํด์ CPU๊ฐ ์ฒ๋ฆฌํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ๋ฐ์ํด์ผํ๋ค. ๊ทธ ์ด์ ๋ CPU Idle Time์ ์ค์ด๊ธฐ ์ํด์์ด๋ค. ์ด ๋, ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ interrupt๊ฐ ์ข ๋ฃ๋๋ฉด ๊ธฐ์กด์ ํ๋ก์ธ์ค๋ฅผ ์ด์ด์ ์ฒ๋ฆฌํด์ผํ๋ค. ์ฌ๊ธฐ์ ๊ธฐ์กด์ ํ๋ก์ธ์ค๋ก ์ ํํ๋ ๊ณผ์ ์ ์ปจํ ์คํธ ์ค์์นญ(Context Switching).. 2024. 4. 21. 7. ํ๋ก์ธ์ค (Process) ๋ณธ๊ฒฉ์ ์ธ ์ด์์ฒด์ ๊ฐ๋ ์ด์ ๊น์ง๋ ์ด์์ฒด์ ๋ฅผ ์๊ธฐ ์ํ ์ ๋ฐ์ ์ธ ํ๋ฆ์ด๋ ๊ธฐ๋ณธ์ ์ธ ์ง์์ ์ค๋ช ํ๋ ๋ด์ฉ์ด์๋ค. ์ด์์ฒด์ ์ ์์์ ์๋ฆฌ๋ ํ๋ก์ธ์ค๋ ๋๋์ฒด ๋ฌด์์ผ๊น? ์ฐ๋ฆฌ๋ Chrome, Kakao Talk์ ๊ฐ์ Application์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด ๋ ์๋ค์ HDD๋ SSD์ ์ ์ฅ๋์ด์๋ค. ๋ฐ๋ก๊ฐ๊ธฐ icon์ ๋ํด '์ฐํด๋ฆญ - ์์ฑ - ํ์ผ์์น์ด๊ธฐ'๋ฅผ ๋๋ฌ๋ณด๋ฉด ์ ํํ ํ๋ก๊ทธ๋จ์ ์ฐพ์ ์ ์๋ค. windows์์๋ Chrome.exe์ ๊ฐ์ *.exe ํ์ฅ์๊ฐ ๋ถ๋๋ฐ ์ด๊ฒ์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ๋ค. ์์์ ํ๋ก์ธ์ค๋ *.exe๋ผ๊ณ ๋ค๋ฃฌ์ ์ด ์๋ค. ๋ง์ง๋ง ์กฐ๊ธ ๋ค๋ฅด๋ค. exe ํ์ผ์๋ ์ฝ๋, ๋ฐ์ดํฐ, ์คํ, ํ ๊ณต๊ฐ์ด ๋ชฉ์ ์ฝ๋๋ก ์์ฑ๋์ด์๋๋ฐ ์ด ์คํํ์ผ์ ์คํํ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋๋ฐ ์คํ .. 2024. 4. 21. ๋ฐฑ์ค - [BOJ 3085] ์ฌํ๊ฒ์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ธ์ง(BOJ)์์ ์ ๊ณต ๋๋ 3085๋ฒ ๋ฌธ์ ๋ ๋ธ๋ฃจํธ ํฌ์ค(Brute-Froce, ์์ ํ์) ์ ํ์ด๋ค. ํด๋น ๋ฌธ์ ๋ code.plus ๊ธฐ์ด 2/2, ๋ธ๋ฃจํธํฌ์ค์ ๊ฒ์๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ์๊ทผ์ด๋ ์ด๋ ธ์ ์ ์ "๋ด๋ณด๋ (Bomboni)" ๊ฒ์์ ์ฆ๊ฒจํ๋ค. ๊ฐ์ฅ ์ฒ์์ N×Nํฌ๊ธฐ์ ์ฌํ์ ์ฑ์ ๋๋๋ค. ์ฌํ์ ์์ ๋ชจ๋ ๊ฐ์ง ์์ ์๋ ์๋ค. ์๊ทผ์ด๋ ์ฌํ์ ์์ด ๋ค๋ฅธ ์ธ์ ํ ๋ ์นธ์ ๊ณ ๋ฅธ๋ค. ๊ทธ ๋ค์ ๊ณ ๋ฅธ ์นธ์ ๋ค์ด์๋ ์ฌํ์ ์๋ก ๊ตํํ๋ค. ์ด์ , ๋ชจ๋ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ ๊ฐ์ฅ ๊ธด ์ฐ์ ๋ถ๋ถ(ํ ๋๋ ์ด)์ ๊ณ ๋ฅธ ๋ค์ ๊ทธ ์ฌํ์ ๋ชจ๋ ๋จน๋๋ค. ์ฌํ์ด ์ฑ์์ง ์ํ๊ฐ ์ฃผ์ด์ก์ ๋, ์๊ทผ์ด๊ฐ ๋จน์ ์ ์๋ ์ฌํ์ ์ต๋ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ๋ณด๋์ ํฌ๊ธฐ N์ด .. 2024. 3. 1. ๋ฐฑ์ค - [BOJ 12094] A์ B ๋ฐฑ์ค ์จ๋ผ์ธ ์ ธ์ง(BOJ)์์ ์ ๊ณต ๋๋ 12094๋ฒ ๋ฌธ์ ๋ ๊ทธ๋ฆฌ๋(Greedy, ํ์๋ฒ) ์ ํ์ด๋ค. ํด๋น ๋ฌธ์ ๋ code.plus ์ค๊ธ 1/3, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒ์๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ์๋น์ด๋ A์ B๋ก๋ง ์ด๋ฃจ์ด์ง ์์ด ๋จ์ด๊ฐ ์กด์ฌํ๋ค๋ ์ฌ์ค์ ๋๋๋ค. ๋ํ์ ์ธ ์๋ก AB (Abdominal์ ์ฝ์), BAA (์์ ์ธ์ ์๋ฆฌ), AA (์ฉ์์ ์ข ๋ฅ), ABBA (์ค์จ๋ด ํ ๊ทธ๋ฃน)์ด ์๋ค. ์ด๋ฐ ์ฌ์ค์ ๋๋ ์๋น์ด๋ ๊ฐ๋จํ ๊ฒ์์ ๋ง๋ค๊ธฐ๋ก ํ๋ค. ๋ ๋ฌธ์์ด S์ T๊ฐ ์ฃผ์ด์ก์ ๋, S๋ฅผ T๋ก ๋ฐ๊พธ๋ ๊ฒ์์ด๋ค. ๋ฌธ์์ด์ ๋ฐ๊ฟ ๋๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ์ฐ์ฐ๋ง ๊ฐ๋ฅํ๋ค. ๋ฌธ์์ด์ ๋ค์ A๋ฅผ ์ถ๊ฐํ๋ค. ๋ฌธ์์ด์ ๋ค์ง๊ณ ๋ค์ B๋ฅผ ์ถ๊ฐํ๋ค. ์ฃผ์ด์ง ์กฐ๊ฑด์ ์ด์ฉํด์ S๋ฅผ T๋ก ๋ง๋ค ์ ์๋์ง ์๋์ง ์์๋ด๋ .. 2024. 2. 29. 6. STL ์ฌ์ฉํ๊ธฐ - std::list STL ์ด๋? C++ ์์ ์ ๊ณตํ๋ STandard Library๋ฅผ STL์ด๋ผ๊ณ ํ๋ค. ์๋ฐ์์๋ ์๋ฐ์์ ์ ๊ณตํ๋ API๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ง๊ธ๊น์ง list์ ๋ํด ์ง์ ์ค๊ณํด๋ณด์๊ณ list์ ๋ํ ์ค๋ช ์ด ์ถฉ๋ถํ๋ค. ์ด๋ฒ์๋ STL์ ์ง์ ์ฌ์ฉํ๋ฉด์ ์ด๋ค ๊ธฐ๋ฅ์ด ์๊ณ ์ธ์ , ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง ์๊ฐํด๋ณด๋๋ก ํ์. โป ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ Method๋ ์ ์ธํ๋ค. (ํจ์จ์ ์ฌ์ฉ) std::list Construct Method Description (constuctor) ๋ฆฌ์คํธ ์์ฑ์ ์ ๋ ฅ ๊ฐ operator= = ๊ธฐํธ์ ๋ํ ์ฐ์ฐ ๋ฐฉ๋ฒ Iterators Method Description begin() ๋ฆฌ์คํธ Head์ ์ํ ๋ฐ์ดํฐ ์์น end() ๋ฆฌ์คํธ ๋ง์ง๋ง ์์น != Tail, null ๊ฐ rbegin.. 2024. 2. 11. 5. ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Circular Linked List) ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋? ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์ ๋์ด ์ฒ์๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ ํํ๋ฅผ ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ผ๊ณ ํฉ๋๋ค. STL์๋ ๊ตฌํ๋์ด์์ง ์๊ณ ์์ง ํ์ ์์ค์ด์ง๋ง, ์ค์ ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ ๋ณธ ์ ์ด ๋ง์ด ์์ต๋๋ค. ๊ทธ๋์ ๋จ์ํ๊ฒ๋ง ๋ง๋ค์ด๋ณด๋๋ก ํ ๊ฒ์ธ๋ฐ, ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ ํํ๋ก ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. (์ค์ ๋ก ์ํ์ ์ธ ์์๋ ํ ๋๋ ์ฌ๊ท๋ฅผ ๋ง์ด ์ฌ์ฉํ๋๋ฏ) ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Circular Linked List) ๊ตฌํํ๊ธฐ ๋ง์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ง๋ ์๊ฒ ์ต๋๋ค. ๋ ธ๋ #pragma once template class Node { public: Node(T data); T getData() const; Node* getNext() const; Node* getPrev() const; void setNext(Node* .. 2024. 2. 10. ์ด์ 1 2 ๋ค์