date가 0일 때 고려해서 stock--;
#include <string>
#include <vector>
#include <queue>
using namespace std;
int solution(int stock, vector<int> dates, vector<int> supplies, int k) {
int answer = 0;
dates.insert(dates.end(), k);
dates.insert(dates.begin(), 0);
supplies.insert(supplies.end(), 0);
supplies.insert(supplies.begin(), 0);
priority_queue<int> store;
stock--;
for(int idx = 1; idx < dates.size(); idx++) {
stock -= dates[idx] - dates[idx - 1];
while (stock + 1 < 0) {
stock += store.top();
store.pop();
answer++;
}
store.push(supplies[idx]);
}
return answer;
}
|
cs |
'problem solving' 카테고리의 다른 글
[프로그래머스]이중우선순위큐 (0) | 2020.03.13 |
---|---|
[미완]디스크 분할 (0) | 2020.03.13 |
[프로그래머스]라면공장 (0) | 2020.03.13 |
[프로그래머스]여행경로 (0) | 2020.03.13 |
[프로그래머스]단어 변환 (0) | 2020.03.12 |