목록2024/04/19 (1)
득이공간
[백준 C++] 16566 카드 게임 - 분리집합
16566번: 카드 게임 첫째 줄에 세 개의 자연수 N, M, K가 주어진다. (1 ≤ M ≤ N ≤ 4,000,000, 1 ≤ K ≤ min(M, 10,000)) 다음 줄에 카드의 번호를 나타내는 M개의 자연수가 주어진다. 각각의 수들은 1 이상이고 N 이하이며 서로 www.acmicpc.net 문제풀이 이분 탐색, 유니온-파인드 연산을 이용해서 푸는 문제입니다. 민수의 카드를 오름차순 정렬하고 upper_bownd 함수(이분 탐색)를 사용해서 내야하는 카드를 찾아 출력하면 됩니다. 그런데 한 번 낸 카드는 다시 낼 수 없기 때문에 다음 탐색에서는 제외해야 합니다. 카드의 총 개수가 많기 때문에 이 때 원소를 삭제하는 방식으로 풀면 시간초과가 발생합니다. 따라서 유니온-파인드 연산을 이용해서 한번 낸 ..
PS/알고리즘 문제풀이
2024. 4. 19. 11:21