File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ # # 중복조합
2
+ # class Solution:
3
+ # def coinChange(self, coins: List[int], amount: int) -> int:
4
+ #
5
+ # def backtrack(current, total):
6
+ # if total == amount:
7
+ # return len(current)
8
+ #
9
+ # if total > amount:
10
+ # return float('inf')
11
+ #
12
+ # min_count = float('inf')
13
+ # for coin in coins:
14
+ # current.append(coin)
15
+ # result = backtrack(current, total + coin)
16
+ # min_count = min(min_count, result)
17
+ # current.pop()
18
+ #
19
+ # return min_count
20
+ #
21
+ # ans = backtrack([], 0)
22
+ # return -1 if ans == float('inf') else ans
23
+ from collections import deque
24
+ from typing import List
25
+
26
+ class Solution :
27
+ def coinChange (self , coins : List [int ], amount : int ) -> int :
28
+ if amount == 0 :
29
+ return 0
30
+
31
+ queue = deque ([(0 , 0 )])
32
+ visited = set ([0 ])
33
+
34
+ while queue :
35
+ current_amount , count = queue .popleft ()
36
+
37
+ for coin in coins :
38
+ new_amount = current_amount + coin
39
+ if new_amount == amount :
40
+ return count + 1
41
+ if new_amount < amount and new_amount not in visited :
42
+ visited .add (new_amount )
43
+ queue .append ((new_amount , count + 1 ))
44
+
45
+ return - 1
46
+
You can’t perform that action at this time.
0 commit comments