1. 문제
코딩테스트 연습 - 라면공장
라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니��
programmers.co.kr
2. 소스코드
- 개인적으로 불호인 문제.
- 밀가루 공급 일정(dates)과 해당 시점에 공급 가능한 밀가루 수량(supplies), 라고 문제에 정의되어 있는데, 정작 풀이는 해당 날짜 이후 언제든지 그 만큼을 공급받을 수 있다.
- 그러니까 <3일날, 10개를 공급 받을 수 있다>는 의미랑, <3일 이후에는 언제나 10개를 공급받을 수 있다>는 의미는 천지 차이인데 문제는 이를 애매하게 서술해놓았다.
- 후자의 의미로 풀어야 AC를 받는다.
소스코드
#include <string>
#include <vector>
#include <queue>
using namespace std;
int solution(int stock, vector<int> dates, vector<int> supplies, int k) {
int answer = 0;
int idx = 0;
priority_queue<int> pq;
for(int day = 0; day < k; ++day){
if(idx < dates.size()){
if(day >= dates[idx]){
pq.push(supplies[idx]);
idx++;
}
}
if(stock == 0){
stock += pq.top();
pq.pop();
answer++;
}
stock--;
}
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[ 프로그래머스 / 문자열 ] 오픈채팅방 (0) | 2020.07.01 |
---|---|
[ 프로그래머스 / 진법 ] 다음 큰 숫자 (0) | 2020.06.30 |
[ 프로그래머스 / 완전탐색 ] 카펫 (0) | 2020.06.30 |
[ 프로그래머스 / Map ] 위장 (0) | 2020.06.30 |
[ 프로그래머스 / DFS ] 타겟 넘버 (0) | 2020.06.30 |