コード例 #1
0
ファイル: Day09.py プロジェクト: iulianpopa1/AOC-2020
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]
コード例 #2
0
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