본문 바로가기

서로소3

다양한 알고리즘 - 서로소 집합을 활용한 사이클 판별 안녕하세요. 서로소 집합은 다양한 알고리즘에 사용될 수 있습니다. 특히 서로소 집합은 무방향 그래프 내에서의 사이클을 판별할 때 사용할 수 있다는 특징이 있습니다. 앞서 union 연산은 그래프에서의 간선으로 표현될 수 있다고 했습니다. 따라서 간선을 하나씩 확인하면서 두 노드가 포함되어 있는 집합을 합치는 과정을 반복하는 것만으로도 사이클을 판별할 수 있습니다. 과정 1번) 각 간선을 확인하며 두 노드의 루트 노드를 확인합니다. 루트 노드가 서로 다르다면 두 노드에 대하여 union 연산을 수행합니다. 루트 노드가 서로 같다면 사이클(Cycle)이 발생한 것입니다. 2번) 그래프에 포함되어 있는 모든 간선에 대하여 1번 과정을 반복합니다. 예시 1 / \ 2---3 초기 상태에서는 모든 노드는 자기 자.. 2024. 1. 19.
다양한 알고리즘 - 서로소 집합(경로 압축 기법) 안녕하세요. 오늘은 이전에 다뤘던 기본적인 서로소 집합 알고리즘을 개선해 보려고합니다. https://sonlife97.tistory.com/entry/%EB%8B%A4%EC%96%91%ED%95%9C-%EA%B7%B8%EB%9E%98%ED%94%84-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 다양한 그래프 알고리즘 - 서로소 집합 안녕하세요. 오늘은 코딩 테스트에서 사용할 수 있는 다양한 그래프 알고리즘에 대해서 소개드리려고합니다. 그래프 알고리즘에 들어가기 앞서, 먼저 기초 내용부터 다지고 들어가겠습니다. 그 sonlife97.tistory.com 기본적인 알고리즘을 사용하면 find 함수가 비효율적으로 동작합니다. 최악의 경우 find 함수가 모든 노드를 다 확인하는 터라 시.. 2024. 1. 19.
다양한 그래프 알고리즘 - 서로소 집합 안녕하세요. 오늘은 코딩 테스트에서 사용할 수 있는 다양한 그래프 알고리즘에 대해서 소개드리려고합니다. 그래프 알고리즘에 들어가기 앞서, 먼저 기초 내용부터 다지고 들어가겠습니다. 그래프 노드와 노드 사이에 연결된 간선정보를 가지고 있는 자료구조를 의미합니다. 그래서 알고리즘 문제에서 '서로 다른 개체(혹은 객체)가 연결되어 있다'는 이야기를 들으면 가장 먼저 그래프 알고리즘을 떠올려야 합니다. 트리 더불어 그래프 자료구조 중에서 트리 자료구조는 다양한 알고리즘에서 사용되므로 꼭 기억하면 좋습니다. 다익스트라 최단 경로 알고리즘에서는 우선순위 큐가 사용되었는데, 우선순위 큐를 구현하기 위해 최소 힙이나 최대 힙을 이용할 수 있다고 했습니다. 최소 힙은 항상 부모 노드가 자식 노드보다 크기가 작은 자료구조.. 2024. 1. 19.