[PYTHON] Antwort auf "Offline in Echtzeit, wie man ein F02-Problem schreibt"

"Anzahl der in zwei Rechtecken enthaltenen Quadrate 2017.2.22 Problem" http://nabetani.sakura.ne.jp/hena/ordf02in2rec/ Antworten

Es war 40 Minuten

main.py



import numpy as np

CEL_H = CEL_W = 10

def build(left, top, right, bottom):
  cel = np.zeros((CEL_H, CEL_W))
  for x in range(left, right+1):
    for y in range(top, bottom+1):
      cel[y, x] = 1
  
  return cel

def solve(cels):
  result = np.zeros((CEL_H, CEL_W));
  for cel in cels:
    result = result + build(cel[0], cel[1], cel[2], cel[3])
  
  return np.count_nonzero(result == 2)

def str2array(str):
  edges = str.split('-')
  lefttop = edges[0].split(',')
  rightbottom = edges[1].split(',')
  return(
    [
      int(lefttop[0]),
      int(lefttop[1]),
      int(rightbottom[0]),
      int(rightbottom[1]),
    ]
  )

def test(result, src, expected):
  str_cels = src.split('/')
  cels = []
  for cel in str_cels:
    cels.append(str2array(cel))

  result[0 if solve(cels) == int(expected) else 1] +=1

result= [0,0]
test(result, "5,1-7,9/3,2-8,6/0,5-9,5", "15" )
test(result, "0,0-9,9/0,0-9,9/0,0-9,9", "0" )
test(result, "0,0-9,9/0,0-0,9/1,0-9,9", "100" )
test(result, "2,5-7,6/0,5-7,7/2,0-8,6", "0" )
test(result, "1,9-4,9/4,9-7,9/0,3-7,4", "1" )
test(result, "6,1-6,9/5,0-7,4/5,1-7,2", "6" )
test(result, "4,0-9,8/5,1-6,8/0,2-9,7", "28" )
test(result, "2,8-8,9/7,9-8,9/8,3-8,9", "2" )
test(result, "3,3-9,4/0,1-8,4/1,2-8,9", "12" )
test(result, "2,1-8,3/0,1-3,7/8,3-8,4", "7" )
test(result, "5,4-6,9/0,0-6,0/5,3-9,8", "10" )
test(result, "1,1-9,7/1,1-3,8/3,8-7,9", "22" )
test(result, "2,4-6,7/3,2-7,8/1,0-9,4", "24" )
test(result, "0,2-1,5/8,1-8,3/1,8-6,8", "0" )
test(result, "5,2-9,5/9,1-9,2/8,0-8,6", "5" )
test(result, "5,0-6,4/2,1-6,4/3,8-3,9", "8" )
test(result, "0,4-6,9/4,1-6,9/7,6-9,7", "18" )
test(result, "0,0-5,5/0,1-2,8/5,3-9,4", "17" )
test(result, "0,2-5,6/5,6-8,7/0,1-2,6", "16" )
test(result, "7,2-8,4/1,0-6,8/1,3-7,6", "26" )
test(result, "4,3-9,3/0,0-6,5/0,0-4,8", "31" )
test(result, "3,4-4,6/2,2-4,8/2,0-8,4", "11" )
test(result, "1,2-6,5/0,5-4,7/2,8-2,9", "4" )
test(result, "4,1-7,5/2,1-9,9/1,7-2,9", "23" )
test(result, "1,6-5,6/0,3-5,7/0,2-2,6", "13" )
test(result, "1,3-3,4/1,4-3,4/9,2-9,9", "3" )
test(result, "6,3-7,6/2,2-2,3/1,3-9,8", "9" )
test(result, "2,2-9,7/1,8-9,8/2,2-8,9", "49" )
test(result, "1,2-6,9/7,6-9,9/4,3-9,9", "33" )
test(result, "6,0-7,5/0,4-3,8/1,4-5,8", "15" )
test(result, "2,0-9,7/0,5-3,8/5,1-7,7", "27" )
test(result, "1,2-8,7/3,1-4,3/2,3-5,8", "20" )
test(result, "1,0-7,7/0,1-5,4/0,0-2,3", "19" )
test(result, "2,0-3,7/1,1-3,7/5,3-5,9", "14" )
test(result, "7,2-9,8/1,0-6,8/0,2-9,9", "63" )
test(result, "1,1-5,3/0,3-8,7/2,3-8,7", "32" )
test(result, "3,4-6,6/1,0-9,1/4,0-9,9", "21" )
test(result, "0,0-4,7/0,5-5,9/0,2-4,5", "25" )
test(result, "1,1-9,9/2,2-7,4/2,4-7,7", "30" )
test(result, "3,2-9,9/2,0-6,6/0,5-8,9", "36" )
test(result, "0,1-8,8/0,5-9,8/2,3-2,4", "38" )
test(result, "0,0-8,6/4,3-9,9/7,1-9,9", "29" )
test(result, "0,0-8,8/2,4-9,8/0,1-9,2", "53" )

print("Success:" + str(result[0]) + ", Fail:" + str(result[1]))

Ergebnis

Success:43, Fail:0

Recommended Posts

Antwort auf "Offline in Echtzeit, wie man ein F02-Problem schreibt"
Antwort auf "Offline-Echtzeit, wie man ein F01-Problem schreibt"
Antwort auf "Offline-Echtzeit, wie man ein E13-Problem schreibt"
Antwort auf "Offline in Echtzeit, wie man ein F05-Problem schreibt"
Antwort auf "Offline in Echtzeit, wie man ein E12-Problem schreibt"
Das 15. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
Offline-Echtzeit zum Schreiben eines Python-Implementierungsbeispiels für das E15-Problem
Das 14. Referenzproblem beim Schreiben in Echtzeit in Python
Das 18. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
Das 16. Offline-Echtzeit-Schreibproblem wurde mit Python gelöst
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
Das 15. Offline-Problem beim Schreiben in Echtzeit wurde mit Python gelöst
20. Offline-Echtzeit So schreiben Sie Probleme in Python
Offline-Echtzeit zum Schreiben eines E14 Python-Implementierungsbeispiels
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
Offline in Echtzeit, wie man ein Implementierungsbeispiel für E11 Ruby und Python schreibt
So schreiben Sie offline in Echtzeit Lösen von F01-Problemen mit Python
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Teil 1 Ich habe die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
XPath-Grundlagen (2) - So schreiben Sie XPath
Teil 1 Ich habe ein Beispiel für die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
13. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
Wie man nüchtern mit Pandas schreibt
Wiederverwendung von Flaschen Wie schreibe ich HTML?
So schreiben Sie ein Docker-Basis-Image
Wie schreibe ich Django1.9 umweltunabhängig wsgi.py
Hinweise zum Schreiben von require.txt
17. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
So schreiben Sie offline in Echtzeit Lösen von E04-Problemen mit Python
Antwort auf das Problem der Überbeanspruchung des Splash-Speichers (Entwurf)
Qiita (1) Wie schreibe ich einen Codenamen?
Wie man optuna einstellt (wie man einen Suchraum schreibt)
So lösen Sie das Problem beim Verpacken des Behälters
So schreiben Sie Python-Dokumentkommentare (Docstrings)
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Wie schreibe ich diesen Prozess in Perl?
Wie man Problemdaten mit Paiza liest
Wie schreibe ich Ruby to_s in Python
Zusammenfassung des Schreibens von AWS Lambda
Wie schreibe ich pydoc und mehrzeilige Kommentare
Wie man offline in Echtzeit schreibt Ich habe versucht, E12 mit Python zu lösen
So schreiben Sie einen Komponententest für den URL-Abruf in GAE / P.
Das 18. Offline-Echtzeit-Schreibproblem in Python
So schreiben Sie einen ShellScript Bash für Anweisung
Wie schreibe ich ein benanntes Tupeldokument im Jahr 2020?
[Go] So schreiben oder rufen Sie eine Funktion auf
Das 19. Offline-Echtzeit-Schreibproblem in Python
So schreiben Sie eine ShellScript-Bash-Case-Anweisung
So schreiben Sie eine GUI mit dem Befehl maya
[Python] Versuchen Sie, die coole Antwort auf das FizzBuzz-Problem zu lesen
So schreiben Sie in Python die Verkettung von Zeichenfolgen in mehrere Zeilen
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
[Python] So schreiben Sie eine Dokumentzeichenfolge, die PEP8 entspricht
Das 14. Referenzproblem beim Offline-Schreiben in Echtzeit mit Python
Wie man schneller schreibt, wenn man numpy wie deque verwendet