import itertools import numpy as np from utils import DataFiles dataFiles = DataFiles(__file__) input = dataFiles.get_input() def part1_iterative(numbers): for i in range(preamble, len(numbers)): sums = set() for nr_j in numbers[i - preamble: i]: for nr_k in numbers[i - preamble: i]: sums.add(nr_j + nr_k) if numbers[i] not in sums: return numbers[i] def part1_numpy(numbers): for i in range(preamble, len(numbers)): partial_sum = np.array(numbers[i - preamble: i], dtype=np.int64) sums = partial_sum.reshape(1, -1) + partial_sum.reshape(-1, 1) for aux in range(0, preamble): sums[aux][aux] = -1 if numbers[i] not in sums: return numbers[i]
import re from utils import DataFiles dataFiles = DataFiles(__file__) input = dataFiles.get_input() # inputRaw = dataFiles.input inputEX = dataFiles.get_inputEX() # inputRawEX = dataFiles.inputEX def contains_color(bag_color): for color, needed in bag_rules.items(): if bag_color in needed.keys(): contains_gold.add(color) contains_color(color) def needed_bags(bag_color): total = 0 if len(bag_rules[bag_color]) == 0: return 0 for comp_bag in bag_rules[bag_color]: no_bags = bag_rules[bag_color][comp_bag] need_bags = needed_bags(comp_bag) total += no_bags + no_bags * need_bags return total