6115번 - Work Scheduling
아래 로직으로 동적계획으로 풀었는데, 시간복잡도가 O(N^2) 라서 시간초과가 나는데요...
혹시 다른방법이 있나요? 이게 최선인거 같은데....
로직:
1, end 기준으로 오름차순 정렬 되는 work class 생성.
2. 아래 동적계획 부분:
for(int i=1;i<N;i++)for(int j=0;j<i;j++){if(joblist[j].end<joblist[i].end&&joblist[i].profit + D[j]>D[i])D[i]=Math.max(D[i], D[j]+joblist[i].profit);}
댓글을 작성하려면 로그인해야 합니다.
naegeora 7년 전
아래 로직으로 동적계획으로 풀었는데, 시간복잡도가 O(N^2) 라서 시간초과가 나는데요...
혹시 다른방법이 있나요? 이게 최선인거 같은데....
로직:
1, end 기준으로 오름차순 정렬 되는 work class 생성.
2. 아래 동적계획 부분:
for(int i=1;i<N;i++)
for(int j=0;j<i;j++){
if(joblist[j].end<joblist[i].end&&joblist[i].profit + D[j]>D[i])
D[i]=Math.max(D[i], D[j]+joblist[i].profit);}