def all_inputs():
    for i in range(2015, 2021):
        Path(f'{i}').mkdir(parents=True, exist_ok=True)
        for j in range(1, 26):
            with open(f'{i}/day{j}.py', mode='a+') as py:
                if Path(f'{i}/day{j}.py').stat().st_size == 0:
                    py.write(template().replace('{day}', str(j)))
            with open(f'{i}/day{j}_input.txt', mode='a+') as txt:
                if Path(f'{i}/day{j}_input.txt').stat().st_size == 0:
                    txt.write(aoc_helper.fetch(j, i))
def get_today():
    # needs to be fixed for other timezones
    today = date.today()
    d, m, y = today.day, today.month, today.year
    if m == 12:
        with open(f'{y}/day{d}.py', mode='a+') as py:
            if Path(f'{y}/day{d}.py').stat().st_size == 0:
                py.write(template().replace('{day}', str(d)))
        with open(f'{y}/day{d}_input.txt', mode='w') as txt:
            txt.write(aoc_helper.fetch(d, y))
        return
    print('no AOC for today')
import aoc_helper

raw = aoc_helper.fetch(5, year=2020)
# print(raw)


def decode_seat(seat):
    lower_y, upper_y = 0, 127
    lower_x, upper_x = 0, 7
    for char in seat:
        mid_y = (upper_y + lower_y) // 2
        mid_x = (upper_x + lower_x) // 2
        if char == "F":
            upper_y = mid_y
        elif char == "B":
            lower_y = mid_y
        elif char == "L":
            upper_x = mid_x
        else:
            lower_x = mid_x
    return upper_x, upper_y


def parse_raw():
    return [decode_seat(seat) for seat in raw.splitlines()]


data = parse_raw()


def part_one():
示例#4
0
            continue
        parse_line(line.strip(), bags, color_table)

    return bags[color_table["shiny gold"]]


# shiny_gold = parse_input(
#     """
# light red bags contain 1 bright white bag, 2 muted yellow bags.
# dark orange bags contain 3 bright white bags, 4 muted yellow bags.
# bright white bags contain 1 shiny gold bag.
# muted yellow bags contain 2 shiny gold bags, 9 faded blue bags.
# shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags.
# dark olive bags contain 3 faded blue bags, 4 dotted black bags.
# vibrant plum bags contain 5 faded blue bags, 6 dotted black bags.
# faded blue bags contain no other bags.
# dotted black bags contain no other bags.
# """
# )
# print shiny_gold.num_containers()

if __name__ == "__main__":
    import aoc_helper
    from pathlib import Path
    import os

    aoc_helper.DATA_DIR = repr(
        Path(os.path.realpath(__file__)).parent.parent / "inputs"
    )
    inp = aoc_helper.fetch(7, 2020)
    print(parse_input(inp).num_containers())
示例#5
0
import aoc_helper
from part1 import parse_input, Bag

if __name__ == "__main__":
    #     print(
    #         parse_input(
    #             """
    # shiny gold bags contain 2 dark red bags.
    # dark red bags contain 2 dark orange bags.
    # dark orange bags contain 2 dark yellow bags.
    # dark yellow bags contain 2 dark green bags.
    # dark green bags contain 2 dark blue bags.
    # dark blue bags contain 2 dark violet bags.
    # dark violet bags contain no other bags.
    #     """
    #         ).how_many_inside
    #     )

    import aoc_helper

    data = aoc_helper.fetch(7, 2020)
    aoc_helper.submit(7, 2, parse_input(data).how_many_inside, 2020)