subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
This commit is contained in:
commit
019f8fd211
766 changed files with 175420 additions and 0 deletions
50
users/wpcarro/scratch/facebook/coin.py
Normal file
50
users/wpcarro/scratch/facebook/coin.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
def init_table(rows=0, cols=0, default=None):
|
||||
table = []
|
||||
for _ in range(rows):
|
||||
row = []
|
||||
for _ in range(cols):
|
||||
row.append(default)
|
||||
table.append(row)
|
||||
return table
|
||||
|
||||
def print_table(table):
|
||||
result = ''
|
||||
for row in range(len(table)):
|
||||
x = ''
|
||||
for col in range(len(table[row])):
|
||||
x += str(table[row][col]) + ' '
|
||||
result += x + '\n'
|
||||
print(result)
|
||||
|
||||
def get(table, row, col):
|
||||
if row < 0 or col < 0:
|
||||
return 0
|
||||
else:
|
||||
return table[row][col]
|
||||
|
||||
def make_change(coins, amt):
|
||||
table = init_table(rows=len(coins), cols=amt, default=0)
|
||||
for row in range(len(table)):
|
||||
for col in range(len(table[row])):
|
||||
coin = coins[row]
|
||||
curr_amt = col + 1
|
||||
pull_down = get(table, row - 1, col)
|
||||
|
||||
if curr_amt < coin:
|
||||
table[row][col] = pull_down
|
||||
elif curr_amt == coin:
|
||||
table[row][col] = pull_down + 1
|
||||
else:
|
||||
leftover = get(table, row, curr_amt - coin - 1)
|
||||
table[row][col] = pull_down + leftover
|
||||
|
||||
print_table(table)
|
||||
return table[-1][-1]
|
||||
|
||||
# 1 2 3 4
|
||||
# 1 1 1 1 1
|
||||
# 2 1 1 2 2
|
||||
# 3 1 1 3 4
|
||||
|
||||
result = make_change([3,2,1], 4)
|
||||
print(result)
|
||||
Loading…
Add table
Add a link
Reference in a new issue