Programmers 42586

기능 개발

Posted by Damin on January 15, 2020

기능 개발

문제 링크

먼저 배포되어야 하는 순서대로 -> queue 활용

날짜를 기록하는 day를 이용하여 풀자

먼저 배포되어야 하는 것을 기준

100을 넘는다면

  • Pop을 해 준다.

넘지 못한다면

  • Day를 늘려준다

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <string>
#include <vector>
#include <iostream>
#include <queue>
using namespace std;

vector<int> solution(vector<int> p, vector<int> s) {
	queue<int> q;
	vector<int> answer;
    int ans[100] = {0,};
	int len = p.size();
    int i = 0;
	int day = 1;
	for (int i = 0; i < len; i++) { // 먼저 나가야 하는 것들 부터 넣어주기
		q.push(p[i]);
	}
	while (q.size()) {
		int pro = q.front();
		int complete = pro + (day * s[i]);
		if (complete >= 100) { // 진도가 100 이상
			ans[day]++;
			q.pop();
            i++;
		}
		else {
			day++;
		}
	}
    for(int i = 1;i <= day; i++){
        if(ans[i]){
            answer.push_back(ans[i]);
        }
    }
	return answer;
}