Skip to content

Commit 1ff5887

Browse files
jeongpine14Hyyena
authored andcommitted
정솔리: 퇴사
1 parent a3929fd commit 1ff5887

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

sollyj/week4/퇴사.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Baekjoon_14501_퇴사
2+
package sollyj.week4;
3+
4+
import java.io.BufferedReader;
5+
import java.io.InputStreamReader;
6+
import java.util.StringTokenizer;
7+
8+
public class 퇴사 {
9+
public static void main(String[] args) {
10+
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
11+
StringTokenizer st;
12+
13+
int N = Integer.parseInt(br.readLine());
14+
int[] T = new int[N]; // 상담 기간
15+
int[] P = new int[N]; // 금액
16+
17+
// 1. 테이블 정의
18+
// n일까지의 최대 수익
19+
int[] profit_max = new int[N + 1];
20+
21+
// 2. 초기값 세팅
22+
for (int i = 0; i < N; i++) {
23+
st = new StringTokenizer(br.readLine());
24+
25+
T[i] = Integer.parseInt(st.nextToken());
26+
P[i] = Integer.parseInt(st.nextToken());
27+
}
28+
29+
// 3. 점화식
30+
for(int i = 0; i < N; i++) {
31+
if(i + T[i] <= N) { // i일에 상담을 했을때 퇴사일 까지 상담을 마칠수 있다면
32+
// profit_max[i + T[i]]: 현재 값
33+
// profit_max[i] + P[i]: i일에 상담을 했을 때 수익
34+
profit_max[i + T[i]] = Math.max(profit_max[i + T[i]], profit_max[i] + P[i]);
35+
}
36+
37+
// 예외 (예제 입력4 같은 경우)
38+
// 꼭 i + T[i]만 상담 할 수 있는 것은 아니고, 상담 다음날 상담을 할 수도 있는 것이다.
39+
profit_max[i + 1] = Math.max(profit_max[i], profit_max[i + 1]);
40+
}
41+
42+
// 4. 답 도출
43+
System.out.println(profit_max[N]);
44+
} catch (Exception e) {
45+
System.out.println(e.getLocalizedMessage());
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)