삐까냥의 파도타기
Q14501. 퇴사 본문
최대 값을 다음 workday에 저장하며 나아가는 로직
workDay가 1인 경우의 함정이 존재하므로 조심하세요.
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Q14501 { static int[][] dp; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine());
int num = Integer.parseInt(st.nextToken());
dp = new int[3][num+2];
for (int i = 1; i <= num; i++) { st = new StringTokenizer(br.readLine()); dp[0][i] = Integer.parseInt(st.nextToken()); dp[1][i] = Integer.parseInt(st.nextToken()); }
for (int i = 1; i <= num; i++) { int delayDay = dp[0][i]; int nowValue = dp[1][i];
if (i+delayDay-1 <= num || delayDay == 1) { int tempValue = dp[2][i] + nowValue; for (int j = i+delayDay; j <= num+1; j++) { dp[2][j] = Math.max(dp[2][j], tempValue); } } } System.out.println(Math.max(dp[2][num], dp[2][num+1]));
} } |
'코딩 > 백준 알고리즘' 카테고리의 다른 글
Q11054. 가장 긴 바이토닉 부분 수열 (0) | 2019.02.19 |
---|---|
Q1965. 상자넣기 (0) | 2019.02.18 |
Q11052. 카드 구매하기 (0) | 2019.02.17 |
Q2156. 포도주 시식 (0) | 2019.02.16 |
Q1890. 점프 (0) | 2019.02.16 |