목록서로소집합 (3)
while (1): study();

문제 공항에는 G개의 탑승구가 있으며, 각각의 탑승구는 1번부터 G번까지의 번호로 구분됩니다. 공항에는 P개의 비행기가 차례대로 도착할 예정이며, i번쨰 비행기를 1번부터 $g_{i}$번째(1 $\le$ $g_{i}$ $\le$ G) 탑승구 중 하나에 영구적으로 도킹해야 합니다. 이때, 다른 비행기가 도킹하지 않은 탑승구에만 도킹할 수 있습니다. 또한 P개의 비행기를 순서대로 도킹하다가 만약에 어떠한 탑승구에도 도킹할 수 없는 비행기가 나오는 경우, 그 시점에서 공항의 운행을 중지합니다. 공항의 관리자는 최대한 많은 비행기를 공항에 도킹하고자 합니다. 비행기를 최대 몇 대 도킹할 수 있는지를 출력하는 프로그램을 작성하세요. 입력 조건 - 첫째 줄에는 탑승구의 수 G(1 $\le$ G $\le$ 100,0..

문제 한울이가 사는 나라에는 N개의 여행지가 있으며, 각 여행지는 1 ~ N번까지의 번호로 구분됩니다. 또한 임의의 두 여행지 사이에는 두 여행지를 연결하는 도로가 존재할 수 있습니다. 이때, 여행지가 도로로 연결되어 있다면 양방향으로 이동이 가능하다는 의미입니다. 한울이는 하나의 여행 계획을 세운 뒤에 이 여행 계획이 가능한지의 여부를 판단하고자 합니다. 예를 들어 N = 5이고, 다음과 같이 도로의 정보가 주어졌다고 가정합시다. 1번 여행지 - 2번 여행지 1번 여행지 - 4번 여행지 1번 여행지 - 5번 여행지 2번 여행지 - 3번 여행지 2번 여행지 - 4번 여행지 만약 한울이의 여행 계획이 2번 → 3번 → 4번 → 3번이라고 해봅시다. 이 경우 2번 → 3번 → 2번 → 4번 → 2번 → 3번..

서로소 집합 알고리즘 서로소 집합이란 공통 원소가 없는 두 집합을 말합니다. 따라서 어떤 그래프가 주어졌을 때 서로소 집합으로 분리하는 일련의 과정을 통해서 집합 간 관계를 파악할 수 있습니다. 이를 수행하는 알고리즘을 서로소 집합 알고리즘이라고 합니다. 서로소 집합 알고리즘은 다음과 같은 순서로 처리됩니다. 1. Union 연산을 통해 서로 연결된 두 A,B를 체크한다. 2. 모든 Union 연산을 처리할 때까지 1번 연산을 반복한다. 3. 루트를 찾기 위해서는 재귀적으로 부모를 거슬러 올라가야 한다. 위와 같이 Union연산과 확인하는 Find연산으로 구성되어 있기 때문에, Union-Find 연산이라고도 합니다. 기본적으로는 다음과 같이 코드로 구현할 수 있습니다. input1 = '''6 4 1 ..