너비 우선 탐색 (BFS; Breath-First Search) 알고리즘 구현
·
Skill/알고리즘
개요 BFS는 그래프나 트리에서 데이터를 탐색하는 알고리즘 중 하나입니다. BFS는 가장 기준 근처에 있는 데이터를 우선으로 하여 탐색 순회를 진행하는 방식입니다. 만약 근처에 더 이상 데이터가 없다면, 탐색을 종료합니다. 그래프와 트리에 대한 자세한 정보는 아래 링크의 글에서 확인할 수 있습니다. 그래프 (Graph)개요 그래프(Graph)는 각 데이터 간의 관계를 표현하는 자료구조로, 각 관계를 가장 간단한 형태로 저장하여 최단 거리 탐색, 소셜 네트워크, 웹 크롤링 다양한 분야에서 활용됩니다. 특징비선형hyeokjunjjang.tistory.com 트리 (Tree)개요 트리(Tree)는 각 요소들을 계층적인 구조로 관리하는 자료구조로, 데이터 저장 및 검색을 효율적으로 수행하여 데이터베이스, 컴퓨..
깊이 우선 탐색 (DFS; Depth-First Search) 알고리즘 구현
·
Skill/알고리즘
개요 DFS는 그래프나 트리에서 데이터를 탐색하는 알고리즘 중 하나입니다. DFS는 가장 깊은 곳에 있는 데이터를 우선으로 하여 탐색 순회를 진행하는 방식입니다. 만약 가장 깊은 곳에 있는 데이터에 도달했다면, 이전 노드로 돌아와서 다른 노드에 대한 깊은 데이터를 탐색합니다. 그래프와 트리에 대한 자세한 정보는 아래 링크의 글에서 확인할 수 있습니다. 그래프 (Graph)개요 그래프(Graph)는 각 데이터 간의 관계를 표현하는 자료구조로, 각 관계를 가장 간단한 형태로 저장하여 최단 거리 탐색, 소셜 네트워크, 웹 크롤링 다양한 분야에서 활용됩니다. 특징비선형hyeokjunjjang.tistory.com 트리 (Tree)개요 트리(Tree)는 각 요소들을 계층적인 구조로 관리하는 자료구조로, 데이터 저..
그래프 (Graph)
·
Skill/자료구조
개요 그래프(Graph)는 각 데이터 간의 관계를 표현하는 자료구조로, 각 관계를 가장 간단한 형태로 저장하여 최단 거리 탐색, 소셜 네트워크, 웹 크롤링 다양한 분야에서 활용됩니다. 특징비선형 구조각 노드들은 계층 구조 없이 서로 복잡하게 연결되어 있습니다.순환 구조 가능성트리(Tree) 자료구조와 달리, 그래프는 경로를 매우 자유롭게 설정할 수 있기 때문에 어느 노드에서 시작해서 돌아오는 경로가 존재할 수도 있습니다.가중치 및 방향 설정각 노드나 간선에 가중치나 이동 방향을 두어, 더 복잡한 관계를 표현할 수도 있습니다. 용어정점(Node, Vertex)실제 데이터를 저장하는 그래프의 주요 구성 요소를 의미합니다.'실제 데이터'와 '간선 리스트'로 구성됩니다.간선(Edge, Link)서로 연결되어..
트리 (Tree)
·
Skill/자료구조
개요 트리(Tree)는 각 요소들을 계층적인 구조로 관리하는 자료구조로, 데이터 저장 및 검색을 효율적으로 수행하여 데이터베이스, 컴퓨터 네트워킹, AI 등 다양한 분야에서 활용됩니다. 트리는 가장 기본적인 자료구조이며 이진 트리, 균형 트리, 힙 등 다양한 종류가 존재합니다. 특징계층적 구조부모와 자식 노드 관계를 통해 각 데이터를 계층적으로 표현합니다.부모 노드는 여러 개의 자식 노드를 가질 수 있지만, 루트 노드가 아닌 자식 노드의 부모 노드는 하나만 존재합니다. 단방향 연결트리의 각 노드는 부모 노드에서 자식 노드의 방향으로만 연결되며, 그 반대 방향은 허용되지 않습니다.비순환그래프(Graph) 자료구조와 달리, 트리는 어느 노드에서 시작해서 다시 같은 노드로 돌아올 수 없습니다.용어 구조 노..
[Unicode] UTF-8 / UTF-16 / UTF-32
·
ETC
개요 유니코드(Unicode)는 전 세계의 모든 문자를 표현할 수 있는 표준 인코딩 방식입니다. 기존의 인코딩 방식(ASCII, ANSI 등)은 특정 언어 전용으로 사용되거나 호환성이 낮아 사용하는데 불편함이 있었고, 유니코드는 이러한 문제를 해결하기 위해 등장했습니다. 또한 유니코드의 인코딩 방식에는 UTF-8, UTF-16, UTF-32가 존재하며, 상황에 따라 적절한 인코딩 방식을 선택하여 사용해야 합니다.특징전 세계의 모든 문자 지원영어, 한글, 중국어, 일본어, 아랍어 등 모든 언어의 문자를 표현할 수 있습니다.표준 인코딩 방식유니코드는 표준 인코딩 방식으로 널리 사용되어, 대부분의 플렛폼에서 같은 내용의 문자로 표현됩니다.각 문자에 'U+XXXX'와 같은 Code Point를 할당하여 표현합니..
[C++] std::map
·
C | C++/STL
개요 C++에서는 맵 자료구조를 갖는 컨테이너로 표준 라이브러리의 map을 사용할 수 있습니다.map m; map은 키와 데이터를 쌍으로 저장 및 관리하는 특징을 가지며, 중복을 허용하는 map으로 std::multimap을, 정렬하지 않는 map으로 std::unordered_map을 사용할 수 있습니다. 특징동적 컨테이너 크기요소를 추가하거나 삭제할 때 컨테이너의 크기가 자동으로 조절됩니다.자동 정렬_Pr 템플릿 매개변수를 이용하여 정렬 방식을 선택할 수 있습니다.기본적으로는 less(오름차순) 정렬 객체를 사용하고, greator(내림차순) 정렬 객체를 사용하거나 사용자가 직접 작성할 수도 있습니다.키를 이용한 임의 접근map의 요소는 키를 이용하여 해당 요소의 데이터에 접근할 수 있습니다.중복되는..
[C++] std::set
·
C | C++/STL
개요 C++에서는 세트 자료구조를 갖는 컨테이너로 표준 라이브러리의 set를 사용할 수 있습니다.set s { 1, 2, 3, 4, 5 }; set는 중복되지 않는 데이터의 집합을 정렬 및 관리하는 특징을 가지며, 중복이 가능한 set로 std::multiset, 정렬하지 않는 set로 std::unordered_set를 사용할 수 있습니다. 특징동적 컨테이너 크기요소를 추가하거나 삭제할 때 컨테이너의 크기가 자동으로 조절됩니다.중복 데이터 삽입 불가set에는 고유한 데이터만 저장할 수 있습니다. 이미 해당 데이터가 존재하는 경우, 삽입되지 않습니다.자동 정렬_Pr 템플릿 매개변수를 이용하여 정렬 방식을 선택할 수 있습니다.기본적으로는 less(오름차순) 정렬 객체를 사용하고, greator(내림차순) ..
[C++] std::priority_queue
·
C | C++/STL
개요 C++에서는 우선 순위 큐 자료구조를 갖는 컨테이너 어댑터로 표준 라이브러리의 priority_queue를 사용할 수 있습니다.priority_queue, less> qp; priority_queue는 queue의 특징과 다르게 선입선출이 아닌 특정 조건에 따른 우선 순위에 따라 데이터가 처리됩니다. std::queue의 주요 특징은 아래 링크에서 자세히 확인할 수 있습니다.  [C++] std::queue개요 C++에서는 큐 자료구조를 갖는 컨테이너 어댑터로 표준 라이브러리의 queue를 사용할 수 있습니다.queue q; queue는 요컨대 선입선출의 특징을 가지며, 주로 비슷하지만 후입선출(LIFO)의 특징을hyeokjunjjang.tistory.com특징컨테이너 어댑터 (Container A..
[C++] std::queue
·
C | C++/STL
개요 C++에서는 큐 자료구조를 갖는 컨테이너 어댑터로 표준 라이브러리의 queue를 사용할 수 있습니다.queue q; queue는 요컨대 선입선출의 특징을 가지며, 주로 비슷하지만 후입선출(LIFO)의 특징을 갖는 std::stack과 비교됩니다. std::stack의 주요 특징은 아래 링크의 글에서 자세히 확인할 수 있습니다.  [C++] std::stack개요 C++에서는 스택 자료구조를 갖는 컨테이너로 표준 라이브러리의 stack을 사용할 수 있습니다.stack st; stack은 요컨대 후입선출의 특징을 가지며, 주로 선입선출의 특징을 갖는 std::queue와 비교hyeokjunjjang.tistory.com특징컨테이너 어댑터 (Container Adapter)큐의 자료구조를 사용하면서 실제..
[C++] std::stack
·
C | C++/STL
개요 C++에서는 스택 자료구조를 갖는 컨테이너로 표준 라이브러리의 stack을 사용할 수 있습니다.stack st; stack은 요컨대 후입선출의 특징을 가지며, 주로 비슷하지만 선입선출(FIFO)의 특징을 갖는 std::queue와 비교됩니다. std::queue의 주요 특징은 아래 링크의 글에서 자세히 확인할 수 있습니다.  [C++] std::queue개요 C++에서는 큐 자료구조를 갖는 컨테이너 어댑터로 표준 라이브러리의 queue를 사용할 수 있습니다.queue q; queue는 요컨대 선입선출의 특징을 가지며, 주로 비슷하지만 후입선출의 특징을 갖hyeokjunjjang.tistory.com특징컨테이너 어댑터 (Container Adapter)스택의 자료구조를 사용하면서 실제로 저장되는 컨테..