diff --git a/2023/Day-02/day02-1.py b/2023/Day-02/day02-1.py new file mode 100755 index 0000000..9d74d32 --- /dev/null +++ b/2023/Day-02/day02-1.py @@ -0,0 +1,32 @@ +#!/usr/bin/python3 + +def main(): + allowed_totals = { + 'red': 12, + 'green': 13, + 'blue':14, + } + + possible_games = [] + + with open('input.txt', 'r') as input_file: + for line in input_file: + possible = True + line = line.strip() + game_num = int(line.split(':')[0].split(' ')[1]) + game_res = [result.split(',') for result in line.split(':')[1].split(';')] + + for result in game_res: + for colour in result: + num_colour = int(colour.strip().split(' ')[0]) + colour_name = colour.strip().split(' ', 1)[1] + + if num_colour > allowed_totals[colour_name]: + possible = False + + if possible: + possible_games.append(game_num) + print(sum(possible_games)) + +if __name__ == '__main__': + main() diff --git a/2023/Day-02/day02-2.py b/2023/Day-02/day02-2.py new file mode 100755 index 0000000..c820813 --- /dev/null +++ b/2023/Day-02/day02-2.py @@ -0,0 +1,31 @@ +#!/usr/bin/python3 + +from math import prod + +def main(): + total = 0 + with open('input.txt', 'r') as input_file: + for line in input_file: + + total_colours = { + 'red': 0, + 'green': 0, + 'blue': 0, + } + + line = line.strip() + game_res = [result.split(',') for result in line.split(':')[1].split(';')] + + for result in game_res: + for colour in result: + num_colour = int(colour.strip().split(' ')[0]) + colour_name = colour.strip().split(' ', 1)[1] + + if num_colour > total_colours[colour_name]: + total_colours[colour_name] = num_colour + + total += prod(total_colours.values()) + print(total) + +if __name__ == '__main__': + main()