Advent of Code 2020 - Tag 2

Im ersten Teil geht es darum, dass man Passwörter gegen verschiedene Gültigkeitsregeln validieren muss. Als Lösung muss man die Anzahl der validen Passwörter eingeben.

Hier meine (Anfänger) Lösung:

datei = "../input/aoc-2020/aoc02.txt"
file = open(datei, 'r')
l2 =[]
for line in file:
     l2.append(line.rstrip())
file.close

maxlen = 0
valid = 0
for i in range(0,len(l2)):
    teil = l2[i].split()
    buchst = teil[1][0]
    minmax = teil[0].split("-")
    min_anz = int(minmax[0])
    max_anz = int(minmax[1])
    pw = teil[2]
    anz = 0
    # alternativ pw.count(buchst)
    for char in pw:
        if char == buchst:
            anz += 1
    if anz >= min_anz and anz <= max_anz:
        valid += 1
        
print (valid)

Im zweiten Teil werden die Gültigkeitsregeln geändert, wieder muss man die mit den neuen Regeln validierten Passwörter zählen. Als Lösung gibt man die Anzahl der gültigen Passwörter ein.

Hier meine (Anfänger) Lösung:

datei = "../input/aoc-2020/aoc02.txt"
file = open(datei, 'r')
l2 =[]
for line in file:
     l2.append(line.rstrip())
file.close

maxlen = 0
valid_num = 0
for i in range(0,len(l2)):
    teil = l2[i].split()
    buchst = teil[1][0]
    minmax = teil[0].split("-")
    min_anz = int(minmax[0])
    max_anz = int(minmax[1])
    pw = teil[2]
    anz = 0
    valid = False
    if (pw[min_anz-1] == buchst and pw[max_anz-1] != buchst or
        pw[min_anz-1] != buchst and pw[max_anz-1] == buchst):
        valid_num += 1
        valid = True
    # print( min_anz, max_anz, buchst, pw, valid)
        
print (valid_num)

Beide Teile erfolgreich gelöst und als Belohnung 2 Goldsterne erhalten: **

Schreib was...

Bitte addieren Sie 5 und 9.