알고리즘/프로그래머스
프로그래머스 - 라면공장
시나모온
2020. 7. 25. 12:54
문제 링크입니다 : https://programmers.co.kr/learn/courses/30/lessons/42629
코딩테스트 연습 - 라면공장
라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니��
programmers.co.kr
#include <string>
#include <vector>
#include <queue>
using namespace std;
int solution(int stock, vector<int> dates, vector<int> supplies, int k) {
int answer = 0;
priority_queue<int> pq;
int len = dates.size();
int index = 0;
// 0일부터 ~ K-1일까지 다 시도해본다.
for(int i = 0; i < k; i++) {
// dates에 있는 날짜랑 시도 날짜랑 같으면 pq에 push
if(index != len && i == dates[index]) {
pq.push(supplies[index++]);
}
// stock이 0이 되는 날에는 저장된거 하나 빼서 더한다.
if(stock == 0) {
stock += pq.top();
pq.pop();
answer++;
}
// 하루 지났으니 stock에서 하나 뺀다.
stock--;
}
return answer;
}
개발 환경 : vscode
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~