본문 바로가기

알고리즘4

[기초] 자료구조 / 트리 (Tree) 트리 (Tree) 사이클이 없는 그래프를 트리라고 합니다. 따라서 정점이 V개 이면 간선은 V-1개를 가지는 성질이 있습니다. 루트 있는 트리 (Rooted Tree) 루트가 있는 트리로 아래 그림에서 1이 루트가 됩니다. 루트 부터 아래로 방향을 정할 수 있습니다. 이때 1은 2의 부모, 2는 4의 부모 2는 1의 자식, 4는 2의 자식, 3의 자식은 6과 7 4와 5는 형제, 2와 3도 형제 따라서 루트에 가까운 쪽이 부모가 됩니다. 부모가 없으면 루트, 자식이 없으면 단말정점(Leaf Node)이라 합니다. 같은 부모를 가지면 형제라 합니다. 깊이(Depth) 깊이는 루트부터의 거리를 말합니다. 루트의 깊이를 0으로 하거나 1로 합니다. 조상(Ancestor), 자손(Descendent) p -> .. 2022. 8. 12.
[기초] 자료구조 / 그래프(Graph)의 표현과 탐색 그래프를 저장하는 방식에 대해 알아봅니다. 그래프의 표현 - 위와 같은 그래프는 정점이 6개, 간선이 8개 있다. - 간선에 방향이 없기 때문에, 방향이 없는 그래프이다. - 정점 : {1, 2, 3, 4, 5, 6} - 간선 : {(1, 2), (1, 5), (2, 5), (2, 3), (3, 4), (2, 4), (4, 5), (4, 6)} 보통 위 그림과 같이 정점의 개수, 간선의 개수 그리고 m개의 줄에 어떤 간선이 연결되어 있는지 주어집니다. 인접 행렬(Adjacency-matrix) 정점의 개수를 V라 했을 때, V x V 크기의 이차원 배열을 이용합니다. A[i][j] = 1 (i -> j 간선이 있을 때), 0 (없을 때) 이 인접행렬은 없는 간선도 저장하기 때문에 불필요한 배열이 생겨 많.. 2022. 8. 10.
[기초] 자료구조 / 그래프 (Graph) 그래프 그래프는 일종의 자료구조이고, 정점과 간선으로 이루어져 있습니다. 정점은 Node, Vertex / 간선은 Edge라 하며 정점 간의 관계를 나타냅니다. ex) G(V,E) 차수(Degree) 차수는 정점과 연결되어 있는 간선의 개수를 말합니다. 위 그래프에서 1, 2, 3은 각각 두 개의 간선이 연결되어 있으므로, 차수는 모두 2가 됩니다. 경로(Path) 예를 들어, 정점A에서 정점 B로 가는 경로는 1. A -> C -> D -> E -> B 2. A -> B 3. A -> C -> B 4. A -> C -> E -> B 이렇게 거쳐가는 경우가 있습니다. 이것이 바로 경로가 됩니다. 사이클(Cycle) 시작 정점과 도착 정점이 같으면 사이클이라 합니다. 예를 들어, 정점A에서 다시 정점A로 .. 2022. 8. 9.
[기초] 정렬(sort) 알고리즘 정렬 정렬은 어떤 자료를 순서대로 배열하는 것을 의미합니다. 많은 알고리즘 문제에서 정렬을 사용하여 문제를 해결합니다. 정렬은 직접 구현하기 보다는 STL에 있는 sort를 사용하는 것이 좋습니다. (STL sort는 intro sort를 사용한다고 합니다. 매우 빠름) 참고 링크 https://www.acmicpc.net/board/view/16770 글 읽기 - stl의 sort 로는 시간초과가뜨는데 제가 틀린건가요? 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net Introsort - Wikipedia Hybrid sorting algorithm Introsort or introspective sort is a hybrid sorting algorithm that provides .. 2022. 8. 8.