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)
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)
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)