Statistics

Problem Statement for "ChangeMachine"

Problem Statement

Some cash registers have change machines attached to them that automatically dispense the appropriate amount of change after a transaction, using the fewest coins possible. Additionally, different monetary systems have different sets of coin values that they may give as change, so stores that accept multiple types of currency must be able to determine how to make change under any system.

Create a class ChangeMachine that contains the method minCoins, which takes a int[] coins, whose elements represent the value of the various coins of a particular monetary system, and an int amount, and returns an int that is the minimum number of coins required to give exact change in that monetary system.

Definition

Class:
ChangeMachine
Method:
minCoins
Parameters:
int[], int
Returns:
int
Method signature:
int minCoins(int[] coins, int amount)
(be sure your method is public)

Constraints

  • coins will have between 0 and 10 elements, inclusive.
  • The elements of coins will be between 1 and 1000, inclusive.
  • amount will be between 0 and 1000, inclusive.

Examples

  1. {50,25,10,5,1}

    43

    Returns: 6

    This is the American coin system. The best answer is: 25+10+5+1+1+1 = 43, which uses 6 coins.

  2. {50,25,10,5,1}

    1000

    Returns: 20

    We can just give 20 coins of value 50.

  3. {2,10,8,8}

    19

    Returns: -1

    All of the coins have an even value and the amount is odd so change cannot be made.

  4. {10,20,30}

    0

    Returns: 0

    The amount is 0 so this method returns 0.

  5. {1,2,3,4,5}

    55

    Returns: 11

  6. {1,1,3,3,5,5,7,7,9,9}

    100

    Returns: 12

  7. {1,2,3,4,5,6,7,8,9,10}

    1000

    Returns: 100

  8. {1,1,1,1,1,1,1,1,1,1}

    1000

    Returns: 1000

  9. {3,8}

    12

    Returns: 4

  10. {1,2,4,8,16,32,64,128,256,512}

    987

    Returns: 8

  11. {54,23,423,89,123,90,123,42}

    22

    Returns: -1

  12. {1,2,3,4,5,6,7,8,9,10}

    8

    Returns: 1

  13. {1,2,3,4,5,6,7,8,9,10}

    0

    Returns: 0

  14. {10,50,100,250,500,100}

    990

    Returns: 8

  15. {}

    0

    Returns: 0

  16. {}

    5

    Returns: -1

  17. {1,20,25}

    40

    Returns: 2

  18. {10,20}

    0

    Returns: 0

  19. {}

    10

    Returns: -1

  20. {1,2,3,4,5,6,7,8,9}

    991

    Returns: 111

  21. {37,50,1,60}

    111

    Returns: 3

  22. {50,30,1}

    60

    Returns: 2

  23. {3,7}

    29

    Returns: 7

  24. {10}

    0

    Returns: 0

  25. {2,10,8,8}

    19

    Returns: -1

  26. {1,20,25}

    40

    Returns: 2

  27. {3,7}

    29

    Returns: 7

  28. {1,1,1,4,5}

    20

    Returns: 4

  29. {1,20,25}

    65

    Returns: 3

  30. {1,20,25}

    40

    Returns: 2

  31. {}

    0

    Returns: 0

  32. {1,4,6}

    8

    Returns: 2

  33. {}

    0

    Returns: 0

  34. {1,20,25}

    40

    Returns: 2

  35. {1,20,25}

    40

    Returns: 2

  36. {1,20,25}

    40

    Returns: 2

  37. {2,10,8,8}

    16

    Returns: 2

  38. {}

    0

    Returns: 0

  39. {7,3}

    30

    Returns: 6

  40. {25,12,10,1}

    45

    Returns: 3

  41. {1,20,25}

    40

    Returns: 2

  42. {1,20,25}

    40

    Returns: 2

  43. {1,20,25}

    40

    Returns: 2

  44. {1,20,25}

    40

    Returns: 2

  45. {}

    0

    Returns: 0

  46. {1,20,25}

    40

    Returns: 2

  47. {1,20,25}

    40

    Returns: 2

  48. {1,1,3,3,5,5,7,7,9,9}

    100

    Returns: 12

  49. {}

    0

    Returns: 0

  50. {1,20,25}

    40

    Returns: 2

  51. {}

    0

    Returns: 0

  52. {1,20,25}

    40

    Returns: 2

  53. {1,20,25}

    40

    Returns: 2

  54. {25}

    28

    Returns: -1

  55. {}

    0

    Returns: 0

  56. {}

    0

    Returns: 0

  57. {25,12,10,1}

    45

    Returns: 3

  58. {50,21,10,1}

    63

    Returns: 3

  59. {30,25,10}

    50

    Returns: 2

  60. {1,14,25}

    28

    Returns: 2

  61. {}

    0

    Returns: 0

  62. {1,7,11}

    14

    Returns: 2

  63. {1,20,25}

    40

    Returns: 2

  64. {1,20,25}

    40

    Returns: 2

  65. {15,11,1}

    22

    Returns: 2

  66. {1,20,25}

    40

    Returns: 2

  67. {1,20,25}

    40

    Returns: 2

  68. {1,5,23}

    45

    Returns: 7

  69. {501,500,8,7,6,5,4,3,2,1}

    1000

    Returns: 2

  70. {1,20,25}

    40

    Returns: 2

  71. {}

    0

    Returns: 0

  72. {1,20,25}

    65

    Returns: 3

  73. {1,1,1,20,25}

    43

    Returns: 5

  74. {1,20,25}

    40

    Returns: 2

  75. {}

    0

    Returns: 0

  76. {}

    1

    Returns: -1

  77. {1,20,25}

    40

    Returns: 2

  78. {}

    54

    Returns: -1

  79. {1,7,11}

    14

    Returns: 2

  80. {50,50,50,50,50,50,50,30,1}

    60

    Returns: 2

  81. {2,7,10}

    14

    Returns: 2

  82. {25,12,10,5,1}

    15

    Returns: 2

  83. {50,30,1}

    60

    Returns: 2

  84. {}

    0

    Returns: 0

  85. {10,7,5,2}

    14

    Returns: 2

  86. {1,2,3,4,5,6,7,8,9,10}

    10

    Returns: 1

  87. {7,3}

    30

    Returns: 6

  88. {1,7,11}

    14

    Returns: 2

  89. {1,20,25}

    40

    Returns: 2

  90. {}

    0

    Returns: 0

  91. {}

    0

    Returns: 0

  92. {5,3}

    9

    Returns: 3

  93. {7,3}

    30

    Returns: 6

  94. {1,20,25}

    40

    Returns: 2

  95. {2,10,8,8}

    19

    Returns: -1

  96. {1,20,25}

    40

    Returns: 2

  97. {}

    17

    Returns: -1

  98. {1,7,11}

    14

    Returns: 2

  99. {}

    10

    Returns: -1

  100. {1,20,25}

    40

    Returns: 2

  101. {25,12,10,1}

    45

    Returns: 3

  102. {1,20,25}

    40

    Returns: 2

  103. {1,20,25}

    40

    Returns: 2

  104. {7,3}

    30

    Returns: 6

  105. {20,7,1}

    28

    Returns: 3

  106. {1,1,1,1,1,1,1,1,1,1}

    1000

    Returns: 1000

  107. {1,7,11}

    14

    Returns: 2

  108. {}

    0

    Returns: 0

  109. {2,5,9,10}

    14

    Returns: 2

  110. {10,9,8}

    17

    Returns: 2

  111. {1,20,25}

    60

    Returns: 3

  112. {5}

    4

    Returns: -1

  113. {7,3}

    30

    Returns: 6

  114. {1}

    1

    Returns: 1

  115. {}

    10

    Returns: -1

  116. {2,2}

    5

    Returns: -1

  117. {1,20,25}

    40

    Returns: 2

  118. {1,20,25}

    40

    Returns: 2

  119. {2,10,8,8}

    16

    Returns: 2

  120. {}

    0

    Returns: 0

  121. {1}

    1000

    Returns: 1000

  122. {1,20,25}

    41

    Returns: 3

  123. {20}

    1000

    Returns: 50

  124. {10,9,8}

    17

    Returns: 2

  125. {1,20,25}

    40

    Returns: 2

  126. {6,19,20}

    25

    Returns: 2

  127. {}

    5

    Returns: -1

  128. {}

    10

    Returns: -1

  129. {1,4,6}

    8

    Returns: 2

  130. {50,21,10,1}

    63

    Returns: 3

  131. {}

    0

    Returns: 0

  132. {}

    10

    Returns: -1

  133. {10,9,8,7,6,5,4,3,2,1}

    1000

    Returns: 100

  134. {7,5}

    24

    Returns: 4

  135. {7,6,5,1}

    11

    Returns: 2

  136. {1,20,25}

    40

    Returns: 2

  137. {1,20,25}

    40

    Returns: 2

  138. {8,9,1,5}

    19

    Returns: 3

  139. {}

    0

    Returns: 0

  140. {10,20,30}

    0

    Returns: 0

  141. {3,2}

    7

    Returns: 3

  142. {10,12,15}

    37

    Returns: 3

  143. {}

    0

    Returns: 0

  144. {19,2}

    20

    Returns: 10

  145. {}

    0

    Returns: 0

  146. {20,25}

    40

    Returns: 2

  147. {25,12,10,1}

    45

    Returns: 3

  148. {50,30,1}

    60

    Returns: 2

  149. {10,8,5,1}

    13

    Returns: 2

  150. {3,2}

    7

    Returns: 3

  151. {}

    0

    Returns: 0

  152. {95,40,30,1}

    100

    Returns: 3

  153. {2,10,8,8}

    19

    Returns: -1

  154. {1,20,25}

    40

    Returns: 2

  155. {1,5,25,27,19}

    38

    Returns: 2

  156. {1,20,25}

    40

    Returns: 2

  157. {}

    0

    Returns: 0

  158. {50,20,15,2,1}

    80

    Returns: 3

  159. {2,7}

    10

    Returns: 5

  160. {3,5}

    9

    Returns: 3

  161. {50,21,10,1}

    63

    Returns: 3

  162. {1,20,25}

    40

    Returns: 2

  163. {}

    10

    Returns: -1


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: