강의로 돌아가기
김정빈

테스트 케이스는 맞는데 뭐가 잘못된지 모르겠네요 ㅠㅠ

작업시간 - 시작 위치 를 기준으로 정렬 한뒤,
시작 위치가 현재 작업 시간보다 작거나 같으면 작업 하는 것으로 생각했습니다

작성중인 코드―Solution.java
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import java.util.PriorityQueue;
class Solution {
    public int solution(int[][] jobs) {
        int answer = 0;
        int gap = 0;
        Work temp;
        int ms = 0;
        PriorityQueue<Work> prq = new PriorityQueue<Work>();
        PriorityQueue<Work> temp_prq = new PriorityQueue<Work>();

        for(int i=0; i<jobs.length;i++){
            Work work = new Work(jobs[i][0],(jobs[i][1]-jobs[i][0]),jobs[i][1]);
            prq.add(work);     
        }

        while(prq.size()!=0){
            temp = prq.poll();
            if(ms>=temp.start){
                ms+=temp.amount;
                answer += (ms-temp.start);

                while(temp_prq.size()!=0){
                    prq.add(temp_prq.poll());
                }
            }
            else{
                temp_prq.add(temp);
            }
        }
        answer = answer/jobs.length;

        return answer;
    }
    //정렬를 위한 코드
    static class Work implements Comparable<Work>{
        int start;
        int time;
        int amount;

        public Work(int start, int time, int amount) {
            this.start = start;
            this.time = time;
            this.amount = amount;
        }

         @Override
        public int compareTo(Work work) {
            if(work.time>=0){
            if(this.time > work.time) return 1;
            if(this.time==work.time) return 0;
            return -1;
            }
            else{
                if(this.time<0){
                if((this.time)> work.time) return 1;
                if(this.time==work.time) return 0;
                return -1;
                }
                else{
                    return 1;
                }
            }
        }
    }
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.