티스토리 뷰

https://www.hackerrank.com/challenges/coin-change/problem



def get_ways(n, c):
return [[]] if n == 0 else [[b, *j] for i, b in enumerate(c) if b <= n for j in get_ways(n - b, c[i:])]


n = int(input("Target Change: ").strip())
c = list(map(int, input("Coin List: ").strip().split()))
c.sort()
ways = get_ways(n, c)
print("Number of Ways:", len(ways))
print("List of Ways:", ways)



# Python 3


def get_ways(change, coins):
my_ways = []
for i, coin in enumerate(coins):
if change == coin:
my_ways.append([coin])
elif change - coin >= coin:
for way in get_ways(change - coin, coins[i:]):
my_ways.append([coin, *way])
return my_ways


n = int(input("Target Change: ").strip())
c = list(map(int, input("Coin List: ").strip().split()))
c.sort()
ways = get_ways(n, c)
print("Number of Ways:", len(ways))
print("List of Ways:", ways)



# Python 3


def get_ways(change, coins):
my_ways = [[] for _ in range(change + 1)]
for coin in coins:
for i in range(coin, change + 1):
if i - coin == 0:
my_ways[i].append([coin])
else:
for new_way in [[*way, coin] for way in my_ways[i - coin]]:
my_ways[i].append(new_way)
return my_ways[change]


n = int(input("Target Change: ").strip())
c = list(map(int, input("Coin List: ").strip().split()))
c.sort()
ways = get_ways(n, c)
print("Number of Ways:", len(ways))
print("List of Ways:", ways)


'Puzzle > HackerRank' 카테고리의 다른 글

[HackerRank] Super Reduced String  (0) 2019.04.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함