주제무 다시 봐도 핵심만 보이게끔!

  • 홈
  • 태그
  • 방명록
  • 전체 (95)
    • 알고리즘 (23)
      • 데일리 (0)
      • 그래프 (0)
      • 다이나믹 프로그래밍 (0)
      • 기타 (0)
    • 컴퓨터과학 (26)
    • AWS (13)
    • 자바 (5)
    • 프로젝트 (11)
    • 스프링 (11)
    • 시스템 구조 (2)
    • 방탈출 (4)

문제풀이 1

[알고리즘] union-find, disjoint set

union-find, disjoint set 간단 정리 서로소 집합을 표현할 수 있다. 트리 구조를 사용하며, 한 집합은 하나의 트리구조로 표현된다. 무방향 그래프의 사이클을 검사할 수 있다. 시간 복잡도는 대략 (find 연산의 수) x (log_2 노드의 개수) 이다. union 두 원소를 같은 집합으로 합치는 연산 원소 a, b와 둘의 루트 노드 A, B가 있을 때, A를 B의 자식으로 (혹은 반대로) 연결한다. def union(x, y): x = find_parent(x) y = find_parent(y) parents[x] = y find 원소의 부모를 찾는 연산 자식에서 부모 쪽으로 거슬러 올라간다. 노드의 부모가 자기 자신이 될 때까지(루트 노드) 반복한다. 경로 압축을 통해 최적화를 할 ..

알고리즘 2024.03.20
이전
1
다음
더보기

Copyright © Kakao Corp. All rights reserved.

티스토리툴바