본문 바로가기

C++26

[알고리즘 특강] 2. Tree 이 글에서는 트리 자료구조의 정의, 구조, 용어, 그리고 Binary Search Tree의 구현과 순회 방법에 대해 살펴봅니다.목차1. 트리의 정의와 필요성1.1 트리란?1.2 트리의 활용2. 트리 구조와 용어2.1 트리의 기본 구조2.2 트리의 주요 용어3. Binary Search Tree(BST)3.1 BST의 특징4. Binary Search Tree 구현4.1 초기화4.2 삽입4.3 삽입 동작 과정4.4 삭제4.5 삭제 동작 과정4.6 탐색5. 트리 순회5.1 순회의 종류5.2 순회 구현 (재귀)5.3 순회 구현 (비재귀)6. Self-Balanced Binary Search Tree6.1 높이 계산6.2 종류1. 트리의 정의와 필요성1.1 트리란?정의: 한 노드가 여러 노드를 가리킬 수 있는.. 2025. 4. 30.
[알고리즘 특강] 1. STL (C++) 이 글에서는 C++의 표준 템플릿 라이브러리(STL)의 정의, 주요 구성 요소, 그리고 다양한 컨테이너와 알고리즘에 대해 살펴봅니다.목차1. STL의 정의와 필요성1.1 STL이란?1.2 STL의 주요 구성 요소2. Sequence Containers2.1 Sequence Containers의 특징3. Vector3.1 Vector의 특징3.2 Vector의 구현3.3 Vector의 주요 기능3.4 Vector 사용 예시3.5 Vector 데이터 삽입시 주의사항4. Deque4.1 Deque의 특징4.2 Deque vs Vector4.3 Deque 사용 예시5. List5.1 List의 특징5.2 List 사용 예시5.3 List의 Iterator 특징6. List(forward_list)6.1 Forw.. 2025. 4. 28.
[백준] 14003번 가장 긴 증가하는 부분 수열 5 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 30, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000)예제 입력 1610 20 10 30 20 50출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.둘째 줄에는 가장 긴 증가하는 부분 수열을 출력한다.그러한 수열이 여러가지인 경우 아무거나 .. 2025. 4. 13.
[백준] 11438번 LCA2 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크N(2 ≤ N ≤ 100,000)개의 정점으로 이루어진 트리가 주어진다. 트리의 각 정점은 1번부터 N번까지 번호가 매겨져 있으며, 루트는 1번이다.두 노드의 쌍 M(1 ≤ M ≤ 100,000)개가 주어졌을 때, 두 노드의 가장 가까운 공통 조상(LCA, Lowest Common Ancestor)을 찾는 프로그램을 작성하시오.입력첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리를 구성하는 간선 정보가 주어진다. 각 줄에는 두 개의 정수가 주어지는데, 이는 해당 간선이 연결하는 두 정점을 의미한다.다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정점 쌍이 주어진다.예제 입력 1151 21 32 4.. 2025. 4. 13.
[백준] 10845번 큐 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 큐에 들어있는 정수의 개수를 출력한다.empty: 큐가 비어있으면 1, 아니면 0을 출력한다.front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10.. 2025. 4. 12.
[백준] 10828번 스택 (C++) 목차문제입력출력풀이문제 해결 방법코드문제 문제 링크정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 스택에 들어있는 정수의 개수를 출력한다.empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다.둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다.주어지는 정수는 1보다 크.. 2025. 4. 12.