I hereby claim:
- I am sciyoshi on github.
- I am sciyoshi (https://keybase.io/sciyoshi) on keybase.
- I have a public key whose fingerprint is 672B C1C9 EBCA 2EF5 C4D5 F0EC 012E AF18 BD36 72DD
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
tickets = [] | |
rules = {} | |
valid_range = set() | |
total = 0 | |
for l in LINES: | |
if l == "your ticket:" or l == "nearby tickets:": | |
continue | |
if ":" in l: | |
n, rule = l.split(": ") |
import numpy as np | |
from scipy.ndimage import convolve | |
LINES = open("inputs/day17").read().splitlines() | |
dims = 3 # 4 for part 2 | |
steps = 6 | |
front = 2 * steps + 1 | |
filt = np.full((3,) * dims, 1) | |
filt[(1,) * dims] = 100 |
class a(int): | |
def __mul__(self, b): | |
return a(int(self) + b) | |
def __add__(self, b): | |
return a(int(self) + b) | |
def __sub__(self, b): | |
return a(int(self) * b) | |
def ev(expr, pt2=False): | |
expr = re.sub(r"(\d+)", r"a(\1)", expr) |
class ParseError(Exception): | |
pass | |
def parse_rule(alts): | |
def parse(inp): | |
for rule in alts: | |
s = inp | |
for el in rule: | |
try: | |
s = rules[el](s) |
import functools | |
import operator | |
import itertools | |
import networkx | |
import numpy as np | |
tiles = {} | |
for tiledata in open("inputs/day20").read().strip().split("\n\n"): | |
a, *tilelines = tiledata.splitlines() |
import collections | |
all_ingredients = collections.Counter() | |
possible_ingredients = collections.defaultdict(set) | |
for line in open("inputs/day21").read().splitlines(): | |
ingredients, allergens = line.rstrip(")").split(" (contains ") | |
ingredients = ingredients.split() | |
allergens = allergens.split(", ") | |
all_ingredients.update(ingredients) |
import { promises } from "fs"; | |
import crypto from "crypto"; | |
import path from "path"; | |
import { print, parse } from "graphql"; | |
const plugin = { | |
name: "relay", | |
setup: build => { | |
build.onLoad({ filter: /\.tsx$/, namespace: "" }, async args => { | |
let contents = await promises.readFile(args.path, "utf8"); |
from utils import Pt, Grd | |
import math | |
grd = Grd() | |
for i, l in enumerate(LINES): | |
for j, c in enumerate(l): | |
grd[Pt(i, j)] = int(c) | |
def expand(pt): |
def convert(l, d=0): | |
for i, e in enumerate(l): | |
if isinstance(e, list): | |
yield from convert(e, d + 1) | |
else: | |
yield (e, d) | |
def reduce(l): | |
c = list(l) |