{
"q1": {
"type": "multiple",
"question": "\n**\n\nRegarding dynamic programming, which of the following statements is true\n(select all that apply?)\n\n**\n",
"responses": {
"count": "Dynamic programming can be used to calculate the total number of possible solutions.",
"optimal": "Dynamic programming is useful in finding an optimal solution.",
"technique": "Dynamic programming combines the correctness of complete search and the efficiency of greedy algorithms.",
"memoization": "Dynamic programming utilizes memoization.",
"overlapping": "Dynamic programming is utilized when the problem can be divided into independent overlapping subproblems."
}
},
"q3": {
"type": "blank",
"question": "**\n\nImplement a solution to the coins problem (denominations 1, 3, 4) using\ndynamic programming and determine what is the minimum number of coins\nnecessary to form the following sums:\n\n**\n\n\n1. 17 = ____\n2. 33 = ____\n3. 64 = ____\n4. 71 = ____\n5. 99 = ____\n

\n"
},
"q2": {
"type": "blank",
"question": "**\n\nMemoization is a technique that ____ values in a container such as an ____\nafter ____ them. For each parameter in a ____ function, the value of the\nfunction is calculated ____, and after this, the value can be directly\nretrieved from the container.\n\n**\n"
}
}