Run Details #740

Score

0

Stored run score 92 recalculated to 0 after question exclusions.
Correct (≥100)

0/1

Incorrect (<100)

1

Median Time

5343.0ms

Tokens Used

553

Cost

267µ$

Run Date: 2026-03-03 00:16:16
Coding question results (1)
0304_python_coin_change:0 Incorrect
Score: 92 • 5343ms • 553 tokens • 267µ$
Question: Write Python 3.12 code only. Define exactly one function named min_coins_for_amount(amount, coins). Return the minimum number of coins needed to make the amount exactly. If exact change is impossible, raise ValueError. Raise TypeError for invalid input types. Do not use any imports (no numpy, requests, or other libraries). Sandbox note: dunder attribute access is blocked (for example, type(x).__name__). Avoid names/attributes starting with '__'. Expected output format: - Return exactly one fenced Markdown code block starting with ```python and ending with ```. - Put only valid Python code inside that block (no prose before/after). - Use 4 spaces for indentation (not tabs). - Do not return JSON and do not wrap code in a "function" key. Sample input/output behavior: - min_coins_for_amount(44, [1, 4, 22]) -> 2 Task: Write a Python 3.12 function for making change with the fewest coins (e.g., 78c with 1c, 4c, 22c).
Submitted code
def min_coins_for_amount(amount, coin_values):
    """
    Returns the minimum number of coins needed to make the amount exactly.
    
    Args:
        amount: The target amount.
        coin_values: A list of coin values.
    
    Returns:
        int: The minimum number of coins needed.
        
    Raises:
        ValueError: If exact change is impossible.
    """

    # Check for invalid input types
    if not isinstance(amount, (int, float)) or not isinstance(coin_values, list):
        raise TypeError("Invalid input type")

    coin_values = [val for val in coin_values if isinstance(val, int) and val > 0]

    # Initialize a table to store the minimum number of coins needed for each amount
    dp = [float('inf')] * (amount + 1)
    dp[0] = 0

    # Iterate over each coin value
    for val in coin_values:
        # Iterate from the target amount down to the current coin value
        for amt in range(val, amount + 1):
            # Update the minimum number of coins needed for the current amount
            dp[amt] = min(dp[amt], dp[amt - val] + 1)

    # Check if exact change is impossible
    if dp[amount] == float('inf'):
        raise ValueError("Exact change is impossible")

    return dp[amount]
Test case results
# Status Args Expected Actual Error
0 Pass [78, [1, 4, 22]] 6 6 -
1 Pass [0, [1, 4, 22]] 0 0 -
2 Pass [8, [1, 4, 22]] 2 2 -
3 Pass [44, [1, 4, 22]] 2 2 -
4 Pass [23, [1, 4, 22]] 2 2 -
5 Pass [7, [2, 4]] ValueError ValueError -
6 Pass [11, [5, 6]] 2 2 -
7 Pass [10, [1, 5, 7]] 2 2 -
8 Pass [24, [1, 5, 7]] 4 4 -
9 Pass [3, [2]] ValueError ValueError -
10 Pass [10, '124'] TypeError TypeError -
11 Fail [-1, [1, 2]] ValueError IndexError list assignment index out of range