Итак, я пытался изучить Python в течение некоторого времени (примерно 2 месяца), и, пока у меня есть основы, я пробую более сложный сценарий ios с HackerRank.com. Мне кажется, что я несколько близок к ответу здесь, потому что мне кажется, что вопрос здесь довольно простой.
Я знаю, что значения необходимо настроить так, чтобы n (количество клавиатур) и m (количество дисков) не превышает go b (бюджет), но максимально приближается к этому числу.
Если невозможно быть меньше или равно b, то мне нужно напечатать Вместо -1.
Порядок аргументов: b (бюджет), n (клавиатура), m (диски). Следующая строка ввода - это цены на клавиатуру, а последняя строка ввода - цены на диски.
Например:
Пример ввода:
10 2 3
3 1
5 2 8
Пример вывода:
9
Вот код:
#!/bin/python3
import os
import sys
#
# Complete the getMoneySpent function below.
#
def getMoneySpent(keyboards, drives, b):
keyboards = int(keyboards * n)
drives = int(drives * m)
if keyboards + drives > b:
return -1
else:
return keyboards + drives
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
bnm = input().split()
b = int(bnm[0])
n = int(bnm[1])
m = int(bnm[2])
keyboards = list(map(int, input().rstrip().split()))
drives = list(map(int, input().rstrip().split()))
#
# The maximum amount of money she can spend on a keyboard and USB drive, or -1 if she can't purchase both items
#
moneySpent = getMoneySpent(keyboards, drives, b)
fptr.write(str(moneySpent) + '\n')
fptr.close()
Как есть, я получаю сообщение об ошибке:
Traceback (most recent call last):
File "Solution.py", line 39, in <module>
moneySpent = getMoneySpent(keyboards, drives, b)
File "Solution.py", line 11, in getMoneySpent
keyboards = int(keyboards * n)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'