11052

    카드구매하기 _ 백준 11052& 백준 16194

    이번에도 역시 DP와 관련된 문제이다. 11052 카드 N개를 구매하는 비용의 최대값을 구하는 문제. 카드 N개를 구매하는 비용의 최대값을 d[N]이라고 하면 d[N] = max(d[i] + d[N-i]) 이다. 그러므로 d[1]의 값을 넣고, 그 다음 값부터는 for문을 통해서 확인하며 수행한다. 여기서 j의 값이 i/2인 이유는 i/2이후부터는 d[j] + d[i-j]의 순서만 다를 뿐, 결과는 같기 때문에 계산을 줄이고자 값을 제한한 것이다. //11502 - 카드 구매하기 #include using namespace std; int d[1001]; int f[1000]; int main(void) { int count; int num; int i = 1; scanf("%d", &count); nu..