Как вычислить значения в двух массивах в Python при одном ограничении? - PullRequest
0 голосов
/ 06 августа 2020

Итак, я пытался изучить 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...