Als ich darüber nachdachte, wann die Aufzählungsfunktion effektiv genutzt werden könnte, wurden die folgenden Aufgaben in der Wettbewerbsprogrammierung gestellt, sodass ich dachte, es sei ein guter Ort, um sie zu verwenden.
Wenn Daten zu Schülertests und Fehlzeiten in der Reihenfolge der Schülerregistrierungsnummer angegeben werden, erstellen Sie ein Programm, das die Schülerregistrierungsnummer der Schüler ausgibt, deren Noten in der Reihenfolge über der bestandenen Punktzahl liegen. Die Registrierungsnummern der Schüler werden in der Reihenfolge ab 1 angegeben. Die Noten der Schüler sind die Testergebnisse abzüglich der Anzahl der Abwesenheiten x 5 Punkte.
N M a_1 b_1 a_2 b_2 a_3 b_3 …
N: Anzahl der Schüler M: Mindestpunktzahl a_n: Testergebnis b_n: Anzahl der Abwesenheiten
Es kann andere gute Möglichkeiten geben, aber verwenden wir die Aufzählungsfunktion, um die Antwort auszugeben. Mit der Aufzählungsfunktion können Sie das Listenelement und den Index gleichzeitig in einer for-Schleife abrufen.
# man:Anzahl der Schüler, Punktzahl:Minimale Punktzahl
#Holen Sie sich zunächst jeden numerischen Wert aus dem Eingabewert per Map.
man , score = map(int , input().split())
#Bereiten Sie eine leere Liste vor
li = []
#Elemente erhalten von Karte zu Liste(Ein Paar mit Elementen der Partitur und Abwesenheit)In einer Schleife
for i in range(man):
li.append(list(map(int , input().split())))
#Index der erhaltenen Liste mit der Aufzählungsfunktion(Schülernummer)Holen Sie sich gleichzeitig Listenelemente
#Ausgabeindex durch Verzweigung durch Berechnung des numerischen Werts im Element
for num , scr in enumerate(li):
if (scr[0] - scr[1]*5) >= score:
print(num + 1)
elif ((scr[0] - scr[1]*5) < score) and score == 0:
print(num + 1)
Recommended Posts