set

    [C++] 백준 - 1202 : 보석 도둑

    https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 문제 풀이 이 문제는 가장 가격이 높은 순서대로 보석들을 정렬해서, 높은 순서대로 가방에 넣으면 됩니다. 이 때 넣을 가방은 현존하는 가방중에서 1. 가장 작으면서 2. 보석을 담을 수 있어야 합니다. 배열에 담으면서 매번 정렬하면서 진행한다면, 시간초과가 날 것입니다. 시간제한은 1초이므로 O(NlogN) 의 시간복잡도를 가질 수 있게..

    [C++] 백준 - 7662 : 이중 우선순위 큐

    https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 문제 풀이 가장 큰 값과 가장 작은 값을 명령어에 따라 삭제해야 하는 문제입니다. 우선순위 큐라는 단어에 휩싸여서 처음에는 max heap 형태의 pq를 통해 top(max값) 을 구하고, 마지막 원소를 제외하고 또 다 pop을 하여 min값을 구하는 식으로 구현했는데, 그런식으로 하면 시간초과가 났습니다. min값을 구하기 위해서 기존 원소들을 다 제거하는 방식이었으므로 logN + logN..