이코테
[그래프] 서로소 집합
해당 포스팅은 나동빈님의 이코테 강의를 듣고 정리한 내용입니다. 서로소 집합(disjoint set) 서로소 집합(disjoint set)이란 공통 원소가 없는 두 집합을 의미한다. 두 집합 간에 교집합이 없으면 서로소 집합이다. 서로소 집합 자료구조 서로소 부분 집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조 두 종류의 연산을 지원한다. 합집합(union): 두 원소가 포함된 각각의 집합을 하나의 집합으로 합치는 연산 찾기(find): 특정 원소가 어떤 집합에 속하는지 알려주는 연산 서로소 집합의 동작 과정 union 연산을 확인하며 서로 연결된 두 노드 A, B를 확인한다. A와 B의 루트 노드 A’, B’을 찾는다. A’, B’를 부모 노드로 설정한다. 모든 union 연산을 처리할 때까..
[이코테] 고정점 찾기 (Python, 이진탐색)
문제 고정점(Fixed Point)이란 수열의 원소 중에서 값이 인덱스와 동일한 원소를 의미한다. 예를 들어 수열 a = {-15, -4, 2, 8, 13}이 있을 때 a[2] = 2 이므로 고정점은 2가 된다. 하나의 수열이 N개의 서로 다른 원소로 이루어지며, 모든 원소는 오름차순으로 정렬되어있다. 수열에서 고정점이 있다면 고정점을 출력하는 프로그램을 작성해라. 시간 복잡도 O(logN)인 알고리즘을 작성해야 한다. # 예시1 n = 5 arr = [-15, -6, 1, 3, 7] # res = 3 # 예시2 n = 7 arr = [-15, -4, 2, 8, 9, 13, 15] # res = 2 # 예시3 n = 7 arr = [-15, -4, 3, 8, 9, 13, 15] # res = -1 풀이 ..