Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать код для задачи Python

Алёна А Ученик (156), на голосовании 2 недели назад
Компания, предоставляющая услуги такси, хочет премировать самого лучшего (заработавшего больше всех денег) таксиста за месяц. У нее есть данные о всех поездках: время поездки, класс поездки (эконом, комфорт, бизнес) и имя водителя такси. Напишите программу, которая по этим данным вычислит таксиста, который заработал больше всех денег за месяц. Известно, что 1 минута эконом-класса стоит 10 рублей, 1 минута комфорт-класса стоит 15 рублей, а 1 минута бизнес-класса стоит 30 рублей.

Входные данные:

Вводится натуральное число n – количество совершенных поездок. Далее вводятся n строк со временем поездки, классом поездки и именем таксиста. В каждой из таких строк идет сначала время (натуральное число), потом пробел, потом класс поездки («E» - эконом, «K» - комфорт, «B» - бизнес), затем пробел и имя таксиста (строка из латинских букв).



Выходные данные:

Вывести строку – имя водителя такси, заработавшего наибольшее количество денег. Гарантируется, что такой таксист один.



Так, например, если программе на вход будут поданы следующие данные:

4
10 K Igor
20 E Kirill
30 B Anna
40 E Anna,

то она должна вывести «Anna».
Голосование за лучший ответ
Chudo_Chudnoe Мастер (2067) 1 месяц назад
Вот как-то так получается)
 def find_best_driver(n, trips): 
rates = {'E': 10, 'K': 15, 'B': 30}

earnings = {}

for trip in trips:
time, trip_class, name = trip.split()
time = int(time)
if name not in earnings:
earnings[name] = 0
earnings[name] += time * rates[trip_class]

best_driver = max(earnings, key=earnings.get)

return best_driver

n = 4
trips = [
"10 K Igor",
"20 E Kirill",
"30 B Anna",
"40 E Anna"
]

print(find_best_driver(n, trips))
Егор КанисевУченик (110) 1 месяц назад
А вы знаете как с консоли при введении значений:
4
10 K Igor
20 E Kirill
30 B Anna
40 E Anna
Ввести их в соответствующие переменные, значение поездок в начале,
также значений trips? Просто по условию этого задания дают количество поездок 500, а она не доглядела
Chudo_Chudnoe Мастер (2067) Егор Канисев, да, знаю)
 def find_best_driver(n, trips):  
    rates = {'E': 10, 'K': 15, 'B': 30}  
  
    earnings = {}  
  
    for trip in trips:  
        time, trip_class, name = trip.split()  
        time = int(time)  
        if name not in earnings:  
            earnings[name] = 0  
        earnings[name] += time * rates[trip_class]  
  
    best_driver = max(earnings, key=earnings.get)  
      
    return best_driver  
 
# Считываем количество поездок 
n = int(input("Введите количество поездок: ")) 
 
# Считываем поездки 
trips = [] 
for _ in range(n): 
    trip = input() 
    trips.append(trip) 
 
# Вызываем функцию и выводим результат 
print(find_best_driver(n, trips)) 
Похожие вопросы