[Kenchon-Buch zu Python] -Kapitel 2- "Trainieren Sie Ihre Fähigkeiten zur Problemlösung! Algorithmen und Datenstrukturen" Ich habe den veröffentlichten Code in Python umgeschrieben!

Einführung

Dieser Artikel ist Kenchons Buch, das viele Erklärungen zur wettbewerbsfähigen Programmierung enthält. ** Trainieren Sie Ihre Fähigkeiten zur Problemlösung! Algorithmen und Datenstrukturen(けんちょんさん本)**について、掲載コードをPythonに翻訳したものを、備忘のためまとめたものです。

Auf dieser Seite stellen wir den Inhalt von Kapitel 2 vor! Bitte vergib mir, wenn es irgendwelche Fehler gibt.

Auf den folgenden Seiten finden Sie Links zu anderen Kapiteln. [Inhaltsverzeichnis] https://qiita.com/KevinST/items/002676619a583754bf76

code2.1 Berechnungsbetrag von single für Anweisung

Es ist ein Problem, das den Rechenaufwand für eine einzelne for-Anweisung anzeigt. Ich habe auch die Ausgabe hinzugefügt.

code2-1.py


#N vom Eingang empfangen
N = int(input())
count = 0

for i in range(N):
    count += 1

#Ausgabeergebnis
print(count)

[Eingabebeispiel] 100 [Ausgabebeispiel] 100

Sogenanntes $ O (N) $!

code2.2 Berechnungsbetrag von double für Anweisung

Diesmal ist es der Berechnungsbetrag für die doppelte for-Anweisung

code2-2.py


N = int(input())
count = 0
for i in range(N):
    for j in range(N):
        count += 1
print(count)

[Eingabebeispiel] 100 [Ausgabebeispiel] 10000

Sogenannter Berechnungsbetrag $ O (N ^ 2 $)!

code2.3 Gerade Aufzählung

code2-3.py


N = int(input())
for i in range(N, 1, -2):
    print(i)

[Eingabebeispiel] 10 [Ausgabebeispiel] 10 8 6 4 2

Der Berechnungsbetrag beträgt $ O (N) $.

code2.4 Alle Einträge für aktuelle Punktpaare

code2-4.py


def calc_dist(x1, y1, x2, y2):
    return ((x1 - x2)**2 + (y1 - y2)**2)**0.5

#Eingangsdaten empfangen
N = int(input())
x = [0] * N
y = [0] * N
for i in range(N):
    x[i], y[i] = map(int, input().split())

#Initialisieren Sie den gewünschten Wert mit einem ausreichend großen Wert
minimum_dist = 10000000.0

#Beginnen Sie mit der Erkundung
for i in range(N):
    for j in range(i+1, N):
        dist_i_j = calc_dist(x[i], y[i], x[j], y[j])
        if dist_i_j < minimum_dist:
            minimum_dist = dist_i_j

print(minimum_dist)

[Eingabebeispiel] 4 1 1 2 2 12 66 18 31 [Ausgabebeispiel] 1.4142135623730951

Im obigen Beispiel ist

Klicken Sie hier für Kapitel 3 https://qiita.com/KevinST/items/4d04dc7369880670a63b

Recommended Posts

[Kenchon-Buch zu Python] -Kapitel 2- "Trainieren Sie Ihre Fähigkeiten zur Problemlösung! Algorithmen und Datenstrukturen" Ich habe den veröffentlichten Code in Python umgeschrieben!
[Kenchon-Buch zu Python] -Kapitel 4- "Trainieren Sie Ihre Fähigkeiten zur Problemlösung! Algorithmen und Datenstrukturen" Ich habe den veröffentlichten Code in Python umgeschrieben!
[Kenchon-Buch zu Python] "Trainieren Sie Ihre Fähigkeiten zur Problemlösung! Algorithmen und Datenstrukturen" Ich habe den veröffentlichten Code in Python umgeschrieben! -Inhaltsverzeichnis-
"Buch, um die Programmierfähigkeit zu trainieren, um in der Welt zu kämpfen" Python-Code-Antwortbeispiel --1.3 URLify
"Buch, um Programmierkenntnisse zu trainieren, um in der Welt zu kämpfen" Python-Code-Antwortbeispiel - 2,6-mal
"Buch, um Programmierkenntnisse zu trainieren, um in der Welt zu kämpfen" Python-Code-Antwortbeispiel --2.4 Aufteilen der Liste
Beispiel für die Beantwortung von Python-Code-Antworten --2.7 Schnittknoten
"Buch, um die Programmierfähigkeit zu trainieren, um in der Welt zu kämpfen" Python-Code-Antwortbeispiel - 1,8 "0" -Matrix
Beispiel für eine Python-Codelösung --1.6 Komprimierung von Zeichenketten
"Ein Buch zum Trainieren von Programmierkenntnissen für den Kampf in der Welt" Python-Code-Antwortbeispiel --3.1 Drei Stapel
Python-Code Lösungsbeispiel --1.7 Matrixrotation
"Ein Buch zum Trainieren von Programmierkenntnissen für den Kampf in der Welt" Python-Code-Antwortbeispiel --1.4 Satzfolge
"Ein Buch zum Trainieren von Programmierkenntnissen für den Kampf in der Welt" Beispiel für eine Python-Codelösung --2.8 Schleifenerkennung
"Buch, um Programmierkenntnisse zu trainieren, um in der Welt zu kämpfen" Python-Code-Antwortbeispiel --- Elemente zwischen 2.3 entfernt
"Buch, um Programmierkenntnisse zu trainieren, um in der Welt zu kämpfen" Python-Code-Antwortbeispiel --2.1 Entfernen Sie doppelte Elemente
"Buch, um die Programmierfähigkeit zu trainieren, um in der Welt zu kämpfen" Python-Code-Antwortbeispiel --1.9 Drehung der Zeichenkette
"Buch, um Programmierkenntnisse zu trainieren, um in der Welt zu kämpfen" Python-Code Lösungsbeispiel --1.1 Doppelte Zeichenfolge
Beispiel für die Antwort auf den Python-Code --1.2 Zählen Sie die Anzahl der gleichen Zeichen
Ich hatte das Gefühl, dass ich den Python-Code nach C ++ 98 portiert habe.
"Ein Buch zum Trainieren von Programmierkenntnissen für den Kampf in der Welt" Python-Code-Antwortbeispiel --2.5 Summe zweier in der Liste angezeigter Zahlen
Löse das Spiralbuch (Algorithmus und Datenstruktur) mit Python!
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
Ich möchte die Natur von Python und Pip kennenlernen
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part1-
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part2-
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part4-
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part3-
Ich habe versucht, die statistischen Daten der neuen Corona mit Python abzurufen und zu analysieren: Daten der Johns Hopkins University
Ich habe versucht, den unter "Abrufen von Bildern von der Flickr-API mit Python" (Teil 2) veröffentlichten Vorlagencode zu überarbeiten.