본문 바로가기
프로그래머스

디스크 컨트롤러

by paysmile 2019. 9. 28.
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool cmp(pair<int, int> a,pair<int, int> b){
	if (a.second == b.second)
		return a.first < b.first;
	else
		return a.second < b.second;
}

int solution(vector<vector<int>> jobs) {
	int answer = 0;
	vector<pair<int, int>> v; //start, worktime

	for (int i = 0; i < jobs.size(); i++)
		v.push_back(make_pair(jobs[i][0], jobs[i][1]));

	sort(v.begin(), v.end(), cmp);

	int time = 0, totaltime = 0;

	while (!v.size() == 0) {
		for (int i = 0; i < v.size(); i++) {
			if (time >= v[i].first) {
				time += v[i].second;
				totaltime = totaltime + time - v[i].first;
				v.erase(v.begin() + i);
				break;
			}
			if (i == v.size() - 1)
				time++;
		}
	}
	answer = totaltime / jobs.size();
	return answer;
}

'프로그래머스' 카테고리의 다른 글

여행경로 C++  (0) 2019.09.29
입국심사 C++  (0) 2019.09.28
섬 연결하기  (0) 2019.09.25
가장 먼 노드  (0) 2019.09.23
예산  (0) 2019.09.23