Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.27 KB | None | 0 0
  1. package study;
  2.  
  3. import java.util.LinkedList;
  4. import java.util.Queue;
  5. import java.util.Scanner;
  6.  
  7. public class BJ14501 {
  8.    
  9.     static int n;//day 수
  10.     static int[][] day = new int[15][2];//상담정보
  11.     static int max;//최대 누적급여
  12.  
  13.     public static void main(String[] args) {
  14.        
  15.         Scanner in = new Scanner(System.in);
  16.        
  17.         //day 수 입력
  18.         n = in.nextInt();
  19.        
  20.         //상담 정보 입력
  21.         for(int i = 0; i < n; i++){
  22.             day[i][0] = in.nextInt();
  23.             day[i][1] = in.nextInt();
  24.         }
  25.  
  26.         Queue<Integer> q = new LinkedList<Integer>();
  27.         for(int i = 0; i < n; i++){//상담정보들 큐에 넣기
  28.             q.add(i);//day 인덱스
  29.             q.add(day[i][0]);//상담시간
  30.             q.add(day[i][1]);//상담급여
  31.             q.add(0);//총 급여
  32.         }
  33.        
  34.         while(!q.isEmpty()){
  35.             int dIdx = q.remove();
  36.             int t = q.remove();
  37.             int p = q.remove();
  38.             int totalPay = q.remove();
  39.            
  40.             if(dIdx + t > n){//퇴사일보다 초과되는 상담 pass
  41.                 continue;
  42.             }
  43.            
  44.             totalPay += p;
  45.            
  46.             for(int i = dIdx + t; i < n; i++){//이어서 할 수 있는 상담정보와 누적급여 큐에 넣기
  47.                 q.add(i);
  48.                 q.add(day[i][0]);
  49.                 q.add(day[i][1]);
  50.                 q.add(totalPay);
  51.             }
  52.             max = Math.max(max, totalPay);//최대 누적급여 갱신
  53.         }
  54.         System.out.println(max);
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement