문제 링크: 코딩테스트 연습 > 스택/큐 > 기능개발
문제 이해
알고리즘 구현
알고리즘
#include <string>
#include <vector>
using namespace std;
const int INF = 987654321;
int n;
int ceilNbr(int nbr, int div) {
int ret;
for (ret = 0; ret < INF; ++ret) {
if (ret * div >= nbr) return (ret);
}
return (-1);
}
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
n = progresses.size();
vector<int> days;
days.push_back(ceilNbr(100 - progresses[0], speeds[0]));
int cnt = 1;
for (int i = 1; i < n; ++i) {
int tmpDay = ceilNbr(100 - progresses[i], speeds[i]);
if (tmpDay > days.back()) {
days.push_back(tmpDay);
answer.push_back(cnt);
cnt = 1;
}
else
++cnt;
}
answer.push_back(cnt);
return answer;
}