삐까냥의 파도타기

Q11052. 카드 구매하기 본문

코딩/백준 알고리즘

Q11052. 카드 구매하기

금손형아 2019. 2. 17. 10:01

카드 수만큼의 최대값을 저장하며 나아가는 이중포문 로직입니다.




import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.StringTokenizer;


public class Q11052 {


static long[][] dp = new long[2][1001];

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());

st = new StringTokenizer(br.readLine());

for (int i = 1; i <= num; i++) {

dp[0][i] = Integer.parseInt(st.nextToken());

}

dp[1][1] = dp[0][1];

for (int i = 2; i <= num; i++) {

long maxValue = dp[0][i];

for (int j = 1; j <= i/2; j++) {

maxValue = Math.max(maxValue, dp[1][i-j] + dp[1][j]);

}

dp[1][i] = maxValue;

}

System.out.println(dp[1][num]);

}


'코딩 > 백준 알고리즘' 카테고리의 다른 글

Q1965. 상자넣기  (0) 2019.02.18
Q14501. 퇴사  (0) 2019.02.17
Q2156. 포도주 시식  (0) 2019.02.16
Q1890. 점프  (0) 2019.02.16
Q1520. 내리막길  (0) 2019.02.16