[자료구조] 비선형 자료구조 (트리, 이진트리)
·
Algorithm
트리 트리는 그래프의 한 종류로 사이클이 없고, 주로 계층적 관계를 나타낼 때 사용한다. 하나의 루트노드가 존재하며 부모노드 - 자식노드로 이루어져 있다. 이진트리 트리의 한 종류로 모든 노드의 자식노드 수가 2이하인 트리이다. 이진 트리의 순회 - pre-order : 1. 현재 노드 → 2. 왼쪽 자식 → 3. 오른쪽 자식 - in-order: 1. 왼쪽 자식 → 2. 현재 노드 → 3. 오른쪽 자식 - post-order: 1. 왼쪽 자식 → 2. 오른쪽 자신 → 현재 노드 백준 1991번: 트리 순회 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 ..
[자료구조] 선형 자료구조 (큐, 스택, 덱)
·
Algorithm
스택 (Stack) 나중에 삽입된 데이터가 먼저 삭제되는 Last In, First Out (LIFO) 구조이다. 데이터가 삽입되고 삭제되는 위치가 'Top'으로 같다. 다음과 같이 include해서 사용할 수있다. #include #include using namespace std; int main(){ stack stack; //선언 stack.push(1); //데이터('1') 추가 printf("%d", stack.size()); //stack에 들어있는 데이터 수 반환 printf("%d", stack.top()); //Top에 있는 데이터 반환 stack.pop(); //Top에 있는 데이터 삭제 printf("%d", stack.empty()); //stack이 비어있으면 1, 아니면 0 r..
알고리즘 기초
·
Algorithm
시간 복잡도 - 보통 약 1억번의 연산 당 1초가 걸린다고 가정한 후 worst case를 계산하여 제한 시간을 고려한다. 시간복잡도와 해당 알고리즘 O(1) O(logN) : 이분탐색, Priority Queue의 삽입, 삭제 O(N) : 투포인터, 반복문 (DP) O(NlogN) : Heap sort, Merge sort, Quick sort O(N^2) : 이중 for문 O(N^3) : 플로이드-워셜 O(2^N) O(N!) : 조합식 자료형 (C++) 종류 자료형 범위 크기 정수형 int -2,147,483,648 ~ 2,147,483,647 4 byte unsigned int 0 ~ 4,294,967,295 4 byte long long -9,223,372,036,854,775,808 ~ 9,22..