Coding Test - cpp/Stack, Queue
[프로그래머스 lv 2 ] - 기능개발
에드윈H
2021. 5. 6. 15:40
programmers.co.kr/learn/courses/30/lessons/42586
#include <string>
#include <vector>
#include <math.h>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
// progresses 작업의 진도 // 길이 100이하
// speeds 각 작업의 속도 // 길이 100이하
// 진도<100
//속도 <=100
vector<int> answer;
vector<int> ProgreDay;
//각 프로세스가 몇일 걸리는지
for (int i = 0; i < progresses.size(); i++)
{
int remainJob = (100 - progresses[i]) % speeds[i]; //남은 작업량
int day = (100 - progresses[i]) / speeds[i]; //작업기간
if (remainJob != 0) //남은 작업이 나누어떨이지지 않으면 하루추가 해야함
{
day++;
}
ProgreDay.push_back(day);
}
//작업걸리는기간 비교하여 뒤에 작업보다 오래걸리면 종합하기
int maxDay = ProgreDay[0];
int cntDay = 1;
for (int i = 1; i < ProgreDay.size(); i++)
{
if (maxDay >= ProgreDay[i])
{
cntDay++;
}
else
{
answer.push_back(cntDay);
cntDay = 1;
maxDay = ProgreDay[i];
}
}
answer.push_back(cntDay);
return answer;
}