Here is my solution for Day 2:
with open('input.txt') as file:
    input = file.readlines()
puzzle_input = [line.strip() for line in input]
# First Challenge
valid_passwords = 0
for item in puzzle_input:
    split_item = item.split()
    min = int(split_item[0].split('-')[0])
    max = int(split_item[0].split('-')[1])
    letter = split_item[1].replace(':', '')
    password = split_item[2]
    occurances = password.count(letter)
    if occurances >= min and occurances <= max:
        valid_passwords += 1
print(valid_passwords)
# Second Challenge
valid_passwords = 0
for item in puzzle_input:
    split_item = item.split()
    first_position = int(split_item[0].split('-')[0])
    second_position = int(split_item[0].split('-')[1])
    letter = split_item[1].replace(':', '')
    password = [char for char in split_item[2]]
    if password[first_position-1] == letter:
        if password[second_position-1] != letter:
            valid_passwords += 1
    elif password[second_position-1] == letter:
        valid_passwords += 1
print(valid_passwords)
You can also view my solution on my GitHub.
How did you solve today's challenge?
 

 
    
Top comments (0)