N

(프로그래머스 c++)기능개발 본문

프로그래머스 알고리즘/2단계

(프로그래머스 c++)기능개발

naeunchan 2020. 5. 5. 14:29
728x90
반응형

우선 개발을 하는 데 걸리는 시간을 day 벡터에 넣어준다..!

예시대로 하면 day에는

{7, 3, 9}가 들어가게 된다.

 

그리고 while문으로 day가 빌 때까지 실행을 한다.

맨 앞에 있는 시간을 current에 저장해 두고, int형 ind를 선언한다.

ind는 current보다 큰 수를 만날때까지 ind++을 해준다.

큰 수를 만나면 break를 하여 for문을 빠져나간 후, day 벡터의 처음부터 ind까지 지워버린다.

그리고 ind를 answer에 넣어주면 배포의 개수를 알 수 있다..!

#include <string>
#include <vector>
#include <iostream>

using namespace std;

vector<int> solution(vector<int> progresses, vector<int> speeds) {
    vector<int> answer, day;
    int current = 0, count = 0;
    
    for(int i = 0; i < progresses.size(); i++)
    {
        current = 100 - progresses[i];
        if(current % speeds[i])
            current = current / speeds[i] + 1;
        else
            current /= speeds[i];
        day.push_back(current);
    }
    
    while(!day.empty())
    {
        int ind = 0;
        current = day.front();
        
        for(int i = 0; i < day.size(); i++)
        {
            if(current >= day[i])
                ind++;
            else
                break;
        }
        
        for(int i = 0; i < ind; i++)
            day.erase(day.begin());
        answer.push_back(ind);
    }
    return answer;
}
728x90
반응형