예제 #1
0
alice, bob = (deque(map(int, p.splitlines()[1:])) for p in raw.split("\n\n"))
enum = np.arange(len(alice) + len(bob), 0, -1)


def game(alice=alice, bob=bob, recurse=True):
    seen = set()
    while alice and bob and (s := (tuple(alice), tuple(bob))) not in seen:
        seen.add(s)

        a, b = alice.popleft(), bob.popleft()
        alice_wins = game(deque(islice(alice, a)), deque(islice(
            bob,
            b))) if recurse and a <= len(alice) and b <= len(bob) else a > b
        alice.extend((a, b)) if alice_wins else bob.extend((b, a))

    return bool(alice)


def part_one():
    game(recurse=False)
    return enum @ (alice or bob)


def part_two():
    game()
    return enum @ (alice or bob)


aoc_helper.submit(22, part_one)
aoc_helper.submit(22, part_two)
예제 #2
0
import aoc_helper

raw = aoc_helper.day(13)
print(raw)


def parse_raw():
    ...


data = parse_raw()


def part_one():
    ...


def part_two():
    ...


aoc_helper.submit(13, part_one)
aoc_helper.submit(13, part_two)
예제 #3
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)