데이터구조론
-
[2019 5급 공무원 2차] 자료구조론 제 1문알고리즘 2020. 6. 12. 00:35
2019년 국가공무원 5급 [기술] 공개경쟁채용 제 2차 시험 제 1문 제 1 문. 원소 개수가 n개인 집합의 멱집합(Powerset)은 격자구조(lattice)로 표현이 가능하다. 격자구조에서 각 정점은 각 부분집합이며, 두 부분집합 A,B가 A ⊂ B이고, A⊂C⊂B인 집합 C가 존재하지 않을 경우 두 정점 간에 간선이 존재한다. 예를 들어 집합 {1,2,3}에 대한 멱집합을 격자구조로 표현하면 다음과 같다. 물음에 답하시오. (총 20점) 1) 원소 개수가 n개인 집합에서 원소 개수가 k개인 모든 부분집합의 개수를 구하기 위한 int numSubsets(n,k) 함수에 대해 C언어 형식의 의사코드를 제시하고, 제시한 의사코드의 시간복잡도를 빅오(Big-Oh) 표기법으로 표현하시오. (단, 가능한 한..
-
[56회 변리사 2차-4번] 이진트리 (Binary Tree)알고리즘 2020. 6. 3. 19:39
2019년 제 56회 변리사 2차 데이터 구조론 2교시 4번 문제 해설 이진 트리 (Binary Tree) 하나의 노드가 최대 두개의 자식 노드를 가지는 트리를 말한다. 이진 트리 개념 속 여러 용어가 있지만 중요한 몇가지 용어를 소개한다. 노드의 차수 (Degree): 노드의 서브트리 수 단말(Terminal) 노드: 리프(leaf) 노드라고하며 차수는 0 비단말 노드: 차수가 0이 아닌 노드 노드 레벨: 루트 (레벨 1) 트리의 차수: Max(노드의 차수) 트리의 높이 (Height , Depth) : Max(노드 레벨) 자식 (Child) ,형제 (Sibling) 선조 (Ancestor): 루트까지의 경로상에 있는 모든 노드 자손 (Descendants): 한 노드의 서브트리에 존재하는 모든 노드 ..
-
[56회 변리사 2차-3번] Heap Sort알고리즘 2020. 6. 2. 16:52
2019년 제 56회 변리사 2차 데이터 구조론 2교시 3번 문제 해설 Heap Sort (힙 정렬) 힙정렬을 하기 위해서는 데이터가 힙구조 상태여야한다. 따라서 힙정렬 전에 데이터를 먼저 Heapify Algorithm으로 힙구조를 만든다. (힙구조는 여러개 나올 수 있다.) 오름차순 정렬을 위해 Max Heap을 구성하여 Max Heap의 가장 끝에 해당하는 리프노드와 root를 Swap하면 가장 큰 값이 가장 끝에 위치하게 된다. 가장 끝에 가장 큰 값이 위치 했으므로 가장 끝의 위치를 N이라고 하면 N-1의 위치에 그 다음으로 가장 큰 값을 위치시키면 된다. 이후 부터 다시 Max Heap 만들고 리프와 루트의 Swap (N-1)번 작업하며 정렬하는 알고리즘이다. 참고 ↓ https://www..