Skip to content

Commit 8ceacce

Browse files
j2wooHyyena
authored andcommitted
박지우: 퇴사
1 parent 26ba9eb commit 8ceacce

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

j2woo/week4/퇴사.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package j2woo.week4;
2+
import java.io.*;
3+
import java.util.*;
4+
public class 퇴사 {
5+
public static void main(String[] args) throws IOException{
6+
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
7+
StringTokenizer st=new StringTokenizer(br.readLine());
8+
9+
int N=Integer.parseInt(st.nextToken()); // 퇴사 전까지 남은 N일
10+
// 상담 일정표 plan[i][0]: i일 상담의 걸리는 기간 T, plan[i][1]: i일 상담의 금액 P
11+
int [][] plan=new int[N+1][2]; // 1일부터 N일까지 확인위해 N+1
12+
for(int i=1; i<N+1; i++){
13+
st=new StringTokenizer(br.readLine());
14+
plan[i][0]=Integer.parseInt(st.nextToken());
15+
plan[i][1]=Integer.parseInt(st.nextToken());
16+
}
17+
18+
int D[]=new int[N+2]; // 다이나믹 프로그래밍 사용, i일까지의 최대 수익, N+1일(퇴사까지 비교)
19+
for(int i=1; i<N+1; i++){
20+
int T=plan[i][0]; // i일 상담의 걸리는 시간
21+
int P=plan[i][1]; // i일 상담의 금액
22+
23+
if(i+plan[i][0]<=N+1){ // 오늘 상담이 퇴사 전까지 끝나는지 확인
24+
// i일의 상담을 들었을 때
25+
// D[i+T]=D[i+T]와 오늘까지의 최대값 D[i]+P 비교해서 큰 값 넣어주기
26+
D[i+T]=Math.max(D[i+T],D[i]+P);
27+
}
28+
// i+1날의 값에 i+1날의 최대 수익과 오늘까지의 최대 수익 비교해서 넣어주기
29+
D[i+1]=Math.max(D[i+1],D[i]);
30+
}
31+
// 퇴사날의 최대값 출력!
32+
System.out.println(D[N+1]);
33+
}
34+
}

0 commit comments

Comments
 (0)