[프로그래머스 C++] 더 맵게
[프로그래머스 C++] 더 맵게
https://school.programmers.co.kr/learn/courses/30/lessons/42626
해결전략
힙 Heap
priority queue
priority_queue<int, vector<int>, greater<int>> pQ; // 오름차순
코드
#include <vector>
#include <queue>
using namespace std;
int solution(vector<int> sco, int K) {
int answer = 0;
priority_queue<int, vector<int>, greater<int>> pQ; // 낮은값이 위로 오도록 오름차순 정렬
for(int i=0; i<sco.size(); i++){
pQ.push(sco[i]); // pQ에 음식 정보를 담는다.
}
while(!pQ.empty())
{
if (pQ.top() >= K) break; // pQ의 모든 음식이 K이상이면 while문 종료
if (pQ.size() == 1 && pQ.top() < K) // pQ의 남은 음식이 1개이고 해당 음식이 K보다 작으면
return -1; // -1 리턴
int leastSco = pQ.top();
pQ.pop();
int secondSco = pQ.top();
pQ.pop();
int newFood = leastSco + (secondSco * 2);
pQ.push(newFood);
answer++;
}
return answer;
}
'⭐ 코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 C++] 오픈채팅방 (0) | 2023.10.23 |
---|---|
[프로그래머스 C++] 전력망을 둘로 나누기 (0) | 2023.10.19 |
[프로그래머스 C++] 섬 연결하기 (0) | 2023.10.18 |
[프로그래머스 C++] 스킬트리 (0) | 2023.10.17 |
[프로그래머스 C++] 모음사전 (0) | 2023.10.14 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스 C++] 오픈채팅방
[프로그래머스 C++] 오픈채팅방
2023.10.23 -
[프로그래머스 C++] 전력망을 둘로 나누기
[프로그래머스 C++] 전력망을 둘로 나누기
2023.10.19 -
[프로그래머스 C++] 섬 연결하기
[프로그래머스 C++] 섬 연결하기
2023.10.18 -
[프로그래머스 C++] 스킬트리
[프로그래머스 C++] 스킬트리
2023.10.17