디스크컨트롤러

고장난·2021년 6월 13일
0

코딩 스터디

목록 보기
8/15
#include <string>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

bool cmp(const vector<int> &v1, const vector<int> &v2){
    if(v1[0]==v2[0]){
        return v1[1]<v2[1];}
    return v1[0]>v2[0];
}

int solution(vector<vector<int>> jobs) {
    int divid=jobs.size();
    int answer = 0;
    priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> job;//우선순위큐 나중에 정렬할거  
    sort(jobs.begin(),jobs.end(),cmp);   //큐를 요청시간에 따라서 정리함.
    int current=0;//현재시간 0 초기화
    
    while(jobs.empty()==0||job.empty()==0){//둘다 빌때까지 반복하것습니다.

        for(int i=jobs.size(); 0<i;i--){//jobs 사이즈만큼 돌릴거임
            if(jobs.back()[0]<=current){// 현재시간보다 작거나 같을때만 job에 넣어주고 jobs에선 빼줌
                job.push({jobs.back()[1],jobs.back()[0]});
                jobs.pop_back();
            }
            else{//current가 더 작을경우엔 포문 탈출함
                break;}
        }
        if(job.empty()==1){
            current++;
            continue;
        }
        current=current+job.top().first;
        answer=answer+current-job.top().second;
        job.pop();
        
    }


    
    return answer/divid;
}

채점을 시작합니다.
정확성 테스트
테스트 1 〉 통과 (0.11ms, 3.96MB)
테스트 2 〉 통과 (0.09ms, 3.9MB)
테스트 3 〉 통과 (0.08ms, 3.95MB)
테스트 4 〉 통과 (0.09ms, 3.96MB)
테스트 5 〉 통과 (0.10ms, 3.95MB)
테스트 6 〉 통과 (0.01ms, 3.83MB)
테스트 7 〉 통과 (0.07ms, 3.97MB)
테스트 8 〉 통과 (0.06ms, 3.94MB)
테스트 9 〉 통과 (0.03ms, 3.92MB)
테스트 10 〉 통과 (0.10ms, 3.96MB)
테스트 11 〉 통과 (0.01ms, 3.91MB)
테스트 12 〉 통과 (0.01ms, 3.9MB)
테스트 13 〉 통과 (0.01ms, 3.96MB)
테스트 14 〉 통과 (0.01ms, 3.96MB)
테스트 15 〉 통과 (0.01ms, 3.95MB)
테스트 16 〉 통과 (0.01ms, 3.96MB)
테스트 17 〉 통과 (0.01ms, 3.95MB)
테스트 18 〉 통과 (0.01ms, 3.82MB)
테스트 19 〉 통과 (0.01ms, 3.98MB)
테스트 20 〉 통과 (0.01ms, 3.97MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0

profile
훈련중

0개의 댓글

관련 채용 정보