13. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python

Das Problem ist das Qiita 13. Offline-Echtzeit-Schreibproblem Ich habe es mit Python gelöst. Ich sah am Morgen ein Problem und fragte mich, ob es während der Arbeit gut sein würde. Die Implementierung dauert ca. 1 Stunde.

doukaku_13.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

def create_aquarium(input):
    #0 ist ein leerer Raum,1 ist ein Quadrat mit einem Stapel
    aquarium = []
    for num in input:
        brick_line = [0 for i in range(9)]
        for i in range(int(num)):
            brick_line[8 - i] = 1
        aquarium.append(brick_line)
    aquarium.append([0 for i in range(9)])
    aquarium.insert(0, [0 for i in range(9)])
    return aquarium

def fill_air(aquarium):
    #Suche nach Breitenpriorität
    def fill(y, x):
        aquarium[y][x] = 2
        try:
            if aquarium[y + 1][x] == 0: fills.append((y + 1, x))
        except: pass
        try:
            if aquarium[y - 1][x] == 0: fills.append((y - 1, x))
        except: pass
        try:
            if aquarium[y][x - 1] == 0: fills.append((y, x - 1))
        except: pass

    fills = []
    #installieren
    for i in range(len(aquarium)):
        if aquarium[i][8] == 0:
            fills.append((i, 8))

    for y, x in fills:
        fill(y, x)

    return aquarium

def count_water(aquarium):
    return sum([line.count(0) for line in aquarium])

def test(input, answer):
    aquarium = fill_air(create_aquarium(input))
    my_answer = str(count_water(aquarium))
    if my_answer == answer:
        return True
    else:
        print "answer is %s but my answer is %s" % (answer, my_answer)



if __name__ == "__main__":
    test( "83141310145169154671122", "24" )
    test( "923111128", "45" )
    test( "923101128", "1" )
    test( "903111128", "9" )
    test( "3", "0" )
    test( "31", "0" )
    test( "412", "1" )
    test( "3124", "3" )
    test( "11111", "0" )
    test( "222111", "0" )
    test( "335544", "0" )
    test( "1223455321", "0" )
    test( "000", "0" )
    test( "000100020003121", "1" )
    test( "1213141516171819181716151413121", "56" )
    test( "712131415161718191817161514131216", "117" )
    test( "712131405161718191817161514031216", "64" )
    test( "03205301204342100", "1" )
    test( "0912830485711120342", "18" )
    test( "1113241120998943327631001", "20" )
    test( "7688167781598943035023813337019904732", "41" )
    test( "2032075902729233234129146823006063388", "79" )
    test( "8323636570846582397534533", "44" )
    test( "2142555257761672319599209190604843", "41" )
    test( "06424633785085474133925235", "51" )
    test( "503144400846933212134", "21" )
    test( "1204706243676306476295999864", "21" )
    test( "050527640248767717738306306596466224", "29" )
    test( "5926294098216193922825", "65" )
    test( "655589141599534035", "29" )
    test( "7411279689677738", "34" )
    test( "268131111165754619136819109839402", "102" )

Anstatt nach einem Quadrat zu suchen, das Wasser sammelt, habe ich es gelöst, als ob ich nach einem Quadrat suchen würde, das kein Wasser sammelt. Suchen Sie von unten nach oben, und wenn Sie mit der Suche nach oben fertig sind, sammelt sich Wasser auf den nicht durchsuchten Feldern.

Recommended Posts

13. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
So schreiben Sie offline in Echtzeit Lösen von E04-Problemen mit Python
Das 18. Offline-Echtzeit-Schreibproblem in Python
Das 14. Referenzproblem beim Schreiben in Echtzeit in Python
Das 19. Offline-Echtzeit-Schreibproblem in Python
Das 18. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
17. In Python implementiertes Referenzproblem für das Offline-Schreiben in Echtzeit
Das 16. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
Das 19. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
So schreiben Sie offline in Echtzeit Lösen von E05-Problemen mit Python
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
So schreiben Sie offline in Echtzeit Lösen von F01-Problemen mit Python
Das 16. Offline-Echtzeit-Schreibproblem wurde mit Python gelöst
Das 15. Offline-Problem beim Schreiben in Echtzeit wurde mit Python gelöst
Lösen Sie Optimierungsprobleme mit Python
Wie man in Python entwickelt
[Python] Wie man PCA mit Python macht
Offline-Echtzeit zum Schreiben eines E14 Python-Implementierungsbeispiels
So sammeln Sie Bilder in Python
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Umgang mit Japanisch mit Python
Offline in Echtzeit, wie man ein Implementierungsbeispiel für E11 Ruby und Python schreibt
Das 10. Referenzproblem beim Schreiben in Echtzeit. Implementierungsbeispiel von Python.
Offline-Echtzeit zum Schreiben eines Python-Implementierungsbeispiels für das E15-Problem
Das 11. Referenzproblem beim Schreiben in Echtzeit. Implementierungsbeispiel von Python.
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Antwort auf "Offline in Echtzeit, wie man ein F04-Problem schreibt"
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
Antwort auf "Offline in Echtzeit, wie man ein F05-Problem schreibt"
[Itertools.permutations] So löschen Sie eine Sequenz in Python
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an
So extrahieren Sie einen Polygonbereich in Python
Antwort auf "Offline in Echtzeit, wie man ein E12-Problem schreibt"
So überprüfen Sie die Version von opencv mit Python
Ich wollte ABC159 mit Python lösen
So wechseln Sie die Python-Version in Cloud9
Verwendung von __slots__ in der Python-Klasse
So füllen Sie mit Python dynamisch Nullen aus
Verwendung regulärer Ausdrücke in Python
So zeigen Sie Hello World in Python an
Verwendung ist und == in Python
Wie schreibe ich Ruby to_s in Python
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Wie man offline in Echtzeit schreibt Ich habe versucht, E12 mit Python zu lösen
Verwendung der C-Bibliothek in Python
So empfangen Sie Befehlszeilenargumente in Python
[REAPER] Wie man Reascript mit Python spielt
So löschen Sie einen Taple in einer Liste (Python)
So generieren Sie eine Sequenz in Python und C ++
Einbetten von Variablen in Python-Strings
Verwendung der Python-Bildbibliothek in der Python3-Serie
So erstellen Sie eine JSON-Datei in Python
Antwort auf "Offline in Echtzeit, wie man ein F02-Problem schreibt"
Zusammenfassung der Verwendung von MNIST mit Python