···11-import advent
11+import fileinput
22+33+elves = []
44+elf = 0
55+for line in fileinput.input():
66+ if line.strip():
77+ elf += int(line)
88+ else:
99+ # New line -> new elf.
1010+ elves.append(elf)
1111+ elf = 0
21233-day = advent.Day(year=2022, day=1)
44-elves = [sum(e) for e in day.nparagraphs]
1313+elves.append(elf)
514615print("Part 1:", max(elves))
716print("Part 2:", sum(sorted(elves)[-3:]))
+5-22
2022/day02.py
···11-import os, sys, re, math, copy, fileinput
22-from string import ascii_uppercase, ascii_lowercase
33-from collections import Counter, defaultdict, deque, namedtuple
44-from itertools import count, product, permutations, combinations, combinations_with_replacement
55-66-import advent
77-from utils import parse_line, parse_nums, mul, all_unique, factors, memoize, primes, resolve_mapping
88-from utils import chunks, gcd, lcm, print_grid, min_max_xy
99-from utils import new_table, transposed, rotated, firsts, lasts
1010-from utils import md5, sha256, VOWELS, CONSONANTS
1111-from utils import Point, DIRS, DIRS_4, DIRS_8, N, NE, E, SE, S, SW, W, NW
1212-# Itertools Functions:
1313-# product('ABCD', repeat=2) AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
1414-# permutations('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC
1515-# combinations('ABCD', 2) AB AC AD BC BD CD
1616-# combinations_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD DD
1717-1818-# day .lines .nlines .pars .npars .board .pboard .tboard
1919-2020-day = advent.Day(year=2022, day=2)
11+import fileinput
212223wins = {
234 'A': 'Y',
···4324 'Z': 3,
4425}
45262727+INPUT = [line.strip() for line in fileinput.input()]
2828+4629part_1 = 0
4747-for line in day:
3030+for line in INPUT:
4831 op, us = line.split(' ')
49325033 part_1 += score[us]
···5841print("Part 1:", part_1)
59426043part_2 = 0
6161-for line in day:
4444+for line in INPUT:
6245 op, outcome = line.split(' ')
6346 if outcome == 'X':
6447 us = losses[op]
+4-5
2022/day03.py
···11-import advent
11+import fileinput
22from utils import chunks, parts
3344-day = advent.Day(year=2022, day=3)
55-44+INPUT = [line.strip() for line in fileinput.input()]
6576# Part 1
87part_1 = 0
99-for line in day:
88+for line in INPUT:
109 n = len(line)
1110 fst, snd = parts(line, 2)
1211···22212322# Part 2
2423part_2 = 0
2525-for a, b, c in chunks(day, 3):
2424+for a, b, c in chunks(INPUT, 3):
2625 common = set(a) & set(b) & set(c)
27262827 for c in common:
+3-3
2022/starter.py
···1111from utils import Point, DIRS, DIRS_4, DIRS_8, N, NE, E, SE, S, SW, W, NW
1212# Itertools Functions:
1313# product('ABCD', repeat=2) AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
1414-# permutations('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC
1515-# combinations('ABCD', 2) AB AC AD BC BD CD
1616-# combinations_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD DD
1414+# permutations('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC
1515+# combinations_with_replacement('ABCD', 2) AA AB AC AD BB BC BD CC CD DD
1616+# combinations('ABCD', 2) AB AC AD BC BD CD
17171818# day .lines .nlines .pars .npars .board .pboard .tboard
1919