본문 바로가기

알고리즘/DataStructure2

이중 우선순위 큐 이중 우선순위 큐백준 7662번 문제https://www.acmicpc.net/problem/7662  1. 문제  2. 풀이아쉽게도 JAVA에는 이중 우선순위 큐가 없기 때문에 직접 만들어줘야 한다.다행히 우선순위 큐는 존재하기 때문에 이를 토대로 이중 우선순위 큐를 구현하면 된다. 먼저 우선순위 큐가 존재하기 때문에 최댓값과 최솟값에 대한 두 개의 우선순위 큐를 만들다.이중 우선순위 큐에 값을 넣을 때는 두개의 우선순위 큐에 모두 값을 넣어준다. [이중 우선순위 큐 값 추가 예시]public static class DualPriorityQueue{ Queue maxQueue = new PriorityQueue(Collections.reverseOrder()); Queue minQueue =.. 2024. 7. 3.
크-게 만들기 크게 만들기 백준 2812번 문제 https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 2. 풀이 방법 2.1 내림차수 만들기 2.1.1 개념 주어진 숫자에서 K개를 지웠을 때 가장 큰 수가 되게 하려면 숫자의 앞자리(왼쪽)가 가장 커질 수 있는 방향으로 수를 지우면 될 것이다. 즉 특정 자릿수를 지워 숫자를 내림차순이 되는 형태로 만들면 가장 큰 수가 될 수 있다. 숫자를 내림차수로 만드는 데에는 스택을 활용할 수 있다. 다음과 같이 예시가 주어졌다고 하자 10자리, 지울 수의 개수 = 4, 숫자 = 4177252.. 2023. 5. 21.