Antwort auf AtCoder Beginners Selection von Python3

In diesem Artikel werden Fragen zu AtCoder Beginners Selection 10 + 1 in Python (3.8) beantwortet.

** Was ist AtCoder Anfänger Auswahl **

AtCoder ist ein Wettbewerbsprogrammierungsdienst mit Ursprung in Japan. Weitere Informationen finden Sie in den Artikeln von @ drken und @ e869120

Bitte sehen Sie. Besonders @drken

―― Was ist als nächstes nach der Registrierung bei AtCoder zu tun? ~ Sie können genug kämpfen, wenn Sie so viel lösen! Auswahl vergangener Fragen 10 Fragen ~

Die letzten 10 oben zusammengefassten Fragen wurden später von der AtCoder-Formel als AtCoder Beginners Selection als Übungen für Anfänger übernommen.

Verweise

Es gibt bereits einige Python-Antworten für AtCoder Beginners Selection, aber dieser Artikel war besonders hilfreich. Vielen Dank. In diesem Artikel werde ich Ihnen eine Antwort geben, die sich für Sie "gut" anfühlt. Wenn Sie sie vergleichen, können Sie sehen, dass sie im Detail verbessert wurden.

** Was ist guter Code **

Abgesehen davon denke ich, dass die "Güte" des Codes vom Zweck und der Situation abhängt und kein Konzept ist, das klar definiert werden kann, sondern hauptsächlich

Es gibt zwei Richtungen, und ich denke, es gibt oft einen Kompromiss zwischen diesen beiden Richtungen. Dieser Kompromiss trat auch zum Zeitpunkt der Sprachauswahl vor dem Schreiben des Codes auf. Wie Sie sehen können, wenn Sie die Antwort in Python wie in diesem Artikel mit der Antwort in C ++ von drken vergleichen, wird gesagt, dass sie in Python im Vergleich zu C ++ geschrieben wird. Die Wahl scheint in der Lage zu sein, die Lesbarkeit auf Kosten des Rechenaufwands zu priorisieren.

Prägnanz wird oft als "Güte" von Code bezeichnet. Wenn es sich jedoch nicht um Einwegcode handelt, ist Prägnanz nur dann wertvoll, wenn sie zur Lesbarkeit beiträgt. Wenn sie weniger lesbar ist, ist es besser, den Code nicht zu verkürzen. Persönlich denke ich.

Antworten

  1. PracticeA - Welcome to AtCoder
a = int(input())
b, c = map(int, input().split())
s = input()

print(a+b+c, s)
  1. ABC086A - Product
a, b = map(int, input().split())
print("Odd" if a%2 and b%2 else "Even")
  1. ABC081A - Placing Marbles
print(input().count("1"))
  1. ABC081B - Shift only
_ = input()
A = [*map(int, input().split())]

count = 0
while not any(a%2 for a in A):
    A = [a/2 for a in A]
    count += 1
print(count)
  1. ABC087B - Coins
import itertools as it

A, B, C, X = map(int, [input() for _ in range(4)])

count = 0
for a, b, c in it.product(range(A+1), range(B+1), range(C+1)):
  if 500*a + 100*b + 50*c == X:
    count += 1
print(count)
  1. ABC083B - Some Sums
N, A, B = map(int, input().split())
print(sum(i for i in range(N+1) if A <= sum(map(int,str(i))) <= B))

--Für "i" von "int" können Sie ein Array erhalten, das "int" jeder Ziffer von "i" enthält, wenn Sie "int" auf "str (i)" abbilden.

  1. ABC088B - Card Game for Two
_ = input()
a = sorted(map(int,input().split()), reverse=True)
print(sum(a[::2]) - sum(a[1::2]))
  1. ABC085B - Kagami Mochi
N = int(input())
print(len(set(input() for _ in range(N))))
  1. ABC085C - Otoshidama
N, Y = map(int, input().split())
for n_10k in range(N+1):
  for n_5k in range(N-n_10k+1):
    n_1k = N - n_10k - n_5k
    if n_10k*10000 + n_5k*5000 + n_1k*1000 == Y:
    	print(n_10k, n_5k, n_1k)
    	exit()
print(-1, -1, -1)

9. ABC049C - Tagtraum

S = input()
while S:
  for x in ["dream","dreamer","erase","eraser"]:
    if S.endswith(x):
      S = S[:-len(x)]
      break
  else:
    print("NO")
    break
else:
  print("YES")

――Welches Präfix ist nicht eindeutig festgelegt, welches Suffix jedoch eindeutig festgelegt ist --else offor ... else ...and while ... else ... funktioniert, wenn for und while normal enden und abnormal mit break enden. Funktioniert nicht wenn

  1. ABC086C - Traveling
t0, x0, y0 = 0, 0, 0
for _ in range(int(input())):
  t, x, y = map(int, input().split())
  margin = (t-t0) - abs(x-x0) - abs(y-y0)
  if margin < 0 or margin%2 != 0:
    print("No")
    break
  t0, x0, y0 = t, x, y
else:
  print("Yes")

――Zunächst, wenn margin negativ ist, können Sie den Zielpunkt nicht erreichen. Da es keine Option zum Stoppen gibt, können Sie den Zielpunkt nicht erreichen, wenn "Rand" ungerade ist.

Recommended Posts

Antwort auf AtCoder Beginners Selection von Python3
[Antwortbeispiel (python3)] ABS (AtCoder Beginners Selection) des Atcoders
AtCoder Anfänger Auswahl Memorandum
3 Gründe für die Programmierung Anfänger sollten mit Python beginnen
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Zusammenfassung des maschinellen Lernens von Python-Anfängern
AtCoder Anfänger Auswahlerfahrung (2. Mal)
Typisierungsautomatisierungsnotiz von Python-Anfängern
# 2 Python-Anfänger fordern AtCoder heraus! ABC085C --Otoshidama
Python-Anfänger versuchten es herauszufinden
atCoder 173 Python
Wiedereinführung in Python-Dekoratoren ~ Lernen wir Dekoratoren nach Typ ~
Funktion zum Speichern von Bildern nach Datum [python3]
10 Python-Fehler, die Anfängern häufig sind
Empfohlene Bücher von 3 Typen im Zusammenhang mit Python
Atcoder-Standardeingabesatz für Anfänger (Python)
Ein Lehrbuch für Anfänger von Python-Anfängern
[Python] Versuchen Sie, selbst ein Sortierprogramm zu erstellen. (Selektive Sortierung, Sortierung einfügen, Blasensortierung)
[Python] So zeigen Sie die Elemente der Liste nebeneinander an
Der schnellste Weg für Anfänger, um Python zu beherrschen
Auf Python 2.7.9 aktualisiert
Eine Einführung in die objektorientierte Programmierung für Anfänger von Anfängern
Python für Super-Anfänger Super-Anfänger Python # Einfach loszuwerden
Die erste Web-App, die von Python-Anfängern erstellt wurde
AtCoder ABC 174 Python
Python-Anfänger haben versucht, einen Energy-Drink zu codieren
Memo Nr. 3, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Eintrag, bei dem Python-Anfänger ihr Bestes geben, um nach und nach 100 Sprachprozesse zu beenden
Memo Nr. 1, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Versuchen Sie, RPN mit Python zu berechnen (für Anfänger)
So löschen Sie die von Python ausgegebenen Zeichen
Memo Nr. 2, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
[Python] So sortieren Sie Instanzen nach Instanzvariablen
Ich möchte die Produkte verkaufen, die ich durch Python Scraping Mercari aufgelistet habe
Memo Nr. 7, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Anfänger üben Python
Ich habe versucht, eine selektive Sortierung in Python zu implementieren
Einführung in die Programmierung (Python) TA Tendenz für Anfänger
Memo Nr. 6 für Python-Anfänger zum Lesen von "Detaillierte Erklärung der Python-Grammatik"
Wie man Python für Anfänger schneller macht [numpy]
Python-Anfängernotiz
AtCoder ABC 175 Python
Führen Sie Power Query aus, indem Sie Argumente an Python übergeben
Memo Nr. 5, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
[Python] Fortsetzung - Konvertieren Sie PDF-Text Seite für Seite in CSV
"Backport" zu Python 2
[Kapitel 8] Ende des Kapitels Problem der metrischen Ökonomie (Yukikaku), Antwort von Python
[Keras] Persönliches Memo zum Klassifizieren von Bildern nach Ordner [Python]
[Sprachverarbeitung 100 Schläge 2020] Zusammenfassung der Antwortbeispiele von Python
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Selbst Anfänger möchten sagen "Ich verstehe Python voll und ganz"
Python, das ich Anfängern in der Programmierung empfehlen möchte
So konvertieren Sie den Python # -Typ für Super-Anfänger von Python: str
[Python] Versuchen Sie, die coole Antwort auf das FizzBuzz-Problem zu lesen
Liste der Beiträge zur Optimierung durch Python to Docker
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
[Python] Konvertiert PDF-Text für jede Seite in CSV (2/24 Postscript)
Lesen Sie die XML-Datei anhand des Python-Tutorials