c++39 [백준/C++] 10845 큐 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이번 문제는 자료구조인 queue 에 대한 문제 입니다. 큐의 연산을 그대로 사용하는 문제 이며 string 자료형으로 명령어를 입력 받도록 합니다. 우선 queue를 사용하기위하여 #include 를 헤더에 추가합니다. 큐가 가지고 있는 연산자를 사용해야 합니다. 큐의 연산 pop() : 큐에서 제일 앞의 원소를 제거 합니다. front() : 큐의 제일 앞쪽 원소를 반환 합니다. push() : 큐의 제일 끝쪽에 원소를 추가 합니다. empty.. 2023. 5. 3. [C, C++] 동적 할당, 해제 동적할당 그리고 해제에 대하여 정리 합니다. 우선 기본 개념으로 C 언어에서의 동적할당과 C++ 언어에서의 동적할당은 같지않습니다. 양쪽모두 크게보자면 힙공간에 동적으로 메모리를 할당받아 저장 하는 것 입니다.동적할당을 하고난 후에는 해제를 해줘야합니다. 만일 해제 하지 않을 경우 메모리를 계속 가지고 있기 때문에 메모리 누수가 생길 수 있습니다.메모리 누수가 커질 수록 프로그램에 위험 합니다. C언어 에서의 동적할당 및 해제 C언어 에서는 malloc 으로 할당 하며, free 로 해제 합니다. struct Position { int a; int b; }; int main() { Position* ptr = (Position*)malloc(sizeof(Position)); // 동적 할당 // ... .. 2023. 5. 3. [알고리즘] 순회(전위 순회, 중위 순회, 후위 순회) 이진탐색트리의 추가 부분 입니다. [알고리즘] 이진탐색트리 이진탐색트리? 이진 방식의 탐색을 하기 위한 구조 입니다. 이진탐색트리에서 모든 노드는 아래의 규칙을 가지고 있습니다. 모든 노드의 key는 중복이 되지않습니다. 왼쪽방향의 자식 노드는 부 rhksgml78.tistory.com 1. 전위 순회 (Preorder Traversal) 함수내에서 재귀로 내려가기전 출력합니다. (두개의 서브트리 순회 전) 1. 현재 노드를 출력(처리). 2. 왼쪽 노드를 방문 3. 오른쪽 노드를 방문 void BST_PreOrder(Node* tree, vector& pre) // 전위순회 { if (tree == NULL) // 재귀함수는 항상 탈출조건이 위에있어야함 return; pre.push_back(tree-.. 2023. 4. 27. [알고리즘] 이진탐색트리 이진탐색트리? 이진 방식의 탐색을 하기 위한 구조 입니다. 이진탐색트리에서 모든 노드는 아래의 규칙을 가지고 있습니다. 모든 노드의 key는 중복이 되지않습니다. 왼쪽방향의 자식 노드는 부모값보다 작다. 오른쪽방향의 자식 노드는 부모값보다 크다. 각각의 노드들이 중앙 요소가 되며 임의의 어떤 노드의 왼쪽 서브트리에는 해당 노드보다 작은 값들만, 반대로 어떤 노드의 오른쪽 서브트리에는 해당 노드보다 큰 값들만 있습니다. 이진탐색트리의 특징 장점? 1. 일반 적으로 이진 탐색의 중앙 요소를 알아야 왼쪽과 오른쪽 두곳의 트리를 나눌 수 있기 때문에 "배열"에서만 사용할 수 있습니다. 즉, 배열구조가아닌 연결리스트 혹은 동적으로 크기가 변하는 배열은 사용할 수 없습니다! 2. 배열을 사용하여 탐색할 때 보다 시.. 2023. 4. 27. [백준/C++] 1914 하노이 탑 하노이탑 공부하면서 겸사겸사 백준 문제도 풀어보도록 했다. 재귀함수는 그대로 인데.. 함수내부에서 else 부분에 매개변수 순서를 공부한대로 했더니 틀렸다고한다.. Hanoi(n - 1, mid, from, to); // 이렇게된게 아래쪽이었는데 위에 있어야 정답이었다... cout 2023. 4. 25. [알고리즘/C++]하노이탑알고리즘 재귀함수를 이용하는 하노이탑 알고리즘에 대해 공부하였다. 하노이탑 알고리즘은 재귀적인 방법을 이용해 구현할 수 있다. 하노이탑 문제의 규칙 세 개의 기둥이 있고, 첫 번째 기둥에는 크기가 다른 n개의 원판이 쌓여 있다. 각 원판은 크기가 다르며, 작은 원판이 큰 원판 위에 쌓일 수 있다. 한 번에 하나의 원판만 이동할 수 있으며, 큰 원판 위에 작은 원판이 있을 수 없다. 기존의 기둥에서 목표의 기둥에 처음과 같은 형태로 쌓는 것이 목표다. 자세하게 파악이 가능한 예시 이미지 는 아래쪽에.. 이미치 출처 : https://travelerfootprint.tistory.com/108 단순하게 이게 왜 재귀함수인가 몰랐으나.. 동영상을 찾아보고 공부해본결과 어찌저찌 납득이 되긴 했다.. *주의할점* 함수는 .. 2023. 4. 25. 이전 1 ··· 3 4 5 6 7 다음