2020 Day 06
This commit is contained in:
36
2020/06/code.py
Normal file
36
2020/06/code.py
Normal file
@ -0,0 +1,36 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
# Copyright (c) 2020 Akumatic
|
||||
#
|
||||
# https://adventofcode.com/2020/day/6
|
||||
|
||||
def readFile() -> list:
|
||||
with open(f"{__file__.rstrip('code.py')}input.txt", "r") as f:
|
||||
return [line.split() for line in f.read().strip().split("\n\n")]
|
||||
|
||||
def count(groups: list, everyone: bool) -> int:
|
||||
result = 0
|
||||
for group in groups:
|
||||
answers = {chr(c):0 for c in range(97, 123)}
|
||||
|
||||
for answer in group:
|
||||
for letter in answer:
|
||||
answers[letter] += 1
|
||||
|
||||
if everyone:
|
||||
result += sum([1 for letter in answers if answers[letter] == len(group)])
|
||||
else:
|
||||
result += sum([1 for letter in answers if answers[letter]])
|
||||
|
||||
return result
|
||||
|
||||
def part1(groups: list) -> int:
|
||||
return count(groups, False)
|
||||
|
||||
def part2(seat_ids: list) -> int:
|
||||
return count(groups, True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
groups = readFile()
|
||||
print(f"Part 1: {part1(groups)}")
|
||||
print(f"Part 2: {part2(groups)}")
|
||||
|
Reference in New Issue
Block a user