반응형 우선순위큐4 프로그래머스 - 이중우선순위큐 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 풀이 그대로 구현하면 돼서 간단한 문제이지만 한 가지 문제가 있다. min heap과 max heap을 각각 선언하여 각각의 최솟값 최댓값을 pop하는 방식으로 구현했을 때 각 힙에 3을 넣고, -3을 넣은 뒤 최솟값 pop 최댓값 pop을 하게 되면 maxHeap에는 -3이 남아있을 것이고 minHeap에는 3이 남아있을 것이다. 하지만 원래는 모든 힙에는 원소가 없어야한다. 이를 방지하기 위해 카운트 변수를 생성하여 원소에 삽입할 때에는 증가, 삭제할 때에는 감소시켜준다. 따라서, 카운트가 0일 때에는 모든 큐가 비워지도.. 2022. 3. 16. 프로그래머스 - 디스크 컨트롤러 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42627# 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 풀이 문제의 예시에서 평균 시간을 줄이는 법을 설명하였다. 간단히 요약하면 요청 순으로 수행하다가 소요 시간이 더 짧은 것이 들어오면 해당 작업을 다음으로 수행한다. 이 과정에서 우선순위 큐를 이용하면 된다. 먼저 요청 순으로 수행하기 위해 jobs 배열을 정렬한다. 다음으로 pair 형태를 가지는 우선순위 큐를 선언한다. 추후에 first.. 2022. 3. 15. 프로그래머스 - 더 맵게 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 문제 풀이 주석으로 대체 코드 #include using namespace std; int solution(vector scoville, int K) { int answer = 0; priority_queue pq; //min heap 생성 for(int i=0; i= scoville.size() || pq.size() 2022. 3. 11. 프로그래머스 - 프린터 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 문제 풀이 먼저, 우선순위 큐에 값들을 넣으면 앞에서부터 우선순위대로 정렬되어 값들이 들어갈 것이다. priority_queue pq; for(int i=0; i 2022. 3. 9. 이전 1 다음 반응형