Ejemplo n.º 1
0
Archivo: d05.py Proyecto: Square789/AoC
def get_data():
    puzzle_data = get_input(YEAR, DAY).strip().split("\n")
    return [
        Line(*map(int,
                  re.match("^(\d+),(\d+) -> (\d+),(\d+)$", l).groups()))
        for l in puzzle_data
    ]
Ejemplo n.º 2
0
def main():
    puzzle_in = build_bag_graph(get_input(YEAR, DAY).strip().split("\n"))

    for i, f in enumerate((sol0, sol1)):
        res = f(puzzle_in)
        if res is None:
            continue
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 3
0
Archivo: d15.py Proyecto: Square789/AoC
def main():
    puzzle_in = [int(i) for i in get_input(YEAR, DAY).split(",")]

    for i, f in enumerate((sol0, sol1)):
        res = f(puzzle_in)
        if res is None:
            continue
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 4
0
def main():
    puzzle_in = get_input(YEAR, DAY).strip().split("\n\n")
    puzzle_in = (
        [int(i) for i in puzzle_in[0].split(",")],
        [[[int(x) for x in row.split()] for row in board.split("\n")]
         for board in puzzle_in[1:]],
    )

    ah.print_solution(puzzle_in, DAY, YEAR, sol0, sol1)
Ejemplo n.º 5
0
Archivo: d10.py Proyecto: Square789/AoC
def main():
    puzzle_in = {int(i) for i in get_input(YEAR, DAY).strip().split("\n")}
    puzzle_in.add(max(puzzle_in) + 3)

    for i, f in enumerate((sol0, sol1)):
        res = f(puzzle_in.copy())
        if res is None:
            continue
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 6
0
Archivo: d04.py Proyecto: Square789/AoC
def main():
    puzzle_in = get_input(YEAR, DAY)
    puzzle_in = [[w.split(":") for w in l.strip().split()]
                 for l in puzzle_in.split("\n\n")]
    for i, f in enumerate((sol0, sol1)):
        res = f(puzzle_in)
        if res is None:
            continue
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 7
0
Archivo: d24.py Proyecto: Square789/AoC
def main():
	puzzle_in = get_input(YEAR, DAY).strip().split("\n")

	for i, f in enumerate((sol0, sol1)):
		res = f(puzzle_in)
		res = res[0] if i == 0 else res
		if res is None:
			continue
		print(
			f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
			f"{'='*len(str(DAY))}============================"
		)
Ejemplo n.º 8
0
def main():
    puzzle_in = get_input(YEAR, DAY).strip().split("\n")
    puzzle_in = (int(puzzle_in[0]), [
        int(i) if i.isnumeric() else None for i in puzzle_in[1].split(",")
    ])

    for i, f in enumerate((sol0, sol1)):
        res = f(*puzzle_in)
        if res is None:
            continue
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 9
0
Archivo: d22.py Proyecto: Square789/AoC
def main():
	puzzle_in = get_input(YEAR, DAY).strip().split("\n\n")
	puzzle_in = tuple(
		(*map(int, half.split("\n")[1:]),) for half in puzzle_in
	)

	for i, f in enumerate((sol0, sol1)):
		res = f(puzzle_in) if i == 0 else f(puzzle_in)[1]
		if res is None:
			continue
		print(
			f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
			f"{'='*len(str(DAY))}============================"
		)
Ejemplo n.º 10
0
Archivo: d21.py Proyecto: Square789/AoC
def main():
    puzzle_in = get_input(YEAR, DAY).strip().split("\n")
    puzzle_in = [([*map(str.strip,
                        line.split("(")[0].split())],
                  {*map(str.strip,
                        RE_ALLERGENS.search(line)[1].split(","))})
                 for line in puzzle_in]

    ing_all_map = build_ing_all_map(puzzle_in)

    for i, f in enumerate((sol0, sol1)):
        res = f(puzzle_in, ing_all_map)
        if res is None:
            continue
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 11
0
def main():
    puzzle_in = get_input(YEAR, DAY).strip().split("\n")
    seats = np.zeros((len(puzzle_in), len(puzzle_in[0])), dtype=np.uint8)
    for y, (npline, lsline) in enumerate(zip(seats, puzzle_in)):
        for x, char in enumerate(lsline):
            if char == "L":
                seats[y, x] = STATE.FREE
            elif char == "#":
                seats[y, x] = STATE.OCCUPIED

    for i, f in enumerate((sol0, sol1)):
        res = f(seats)
        if res is None:
            continue
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 12
0
def main():
	puzzle_in = [
		block.split("\n")
		for block in get_input(YEAR, DAY).strip().split("\n\n")
	]

	tiles = [
		Tile(block[1:], int(RE_NUM.search(block[0])[0]))
		for block in puzzle_in
	]

	for i, f in enumerate((sol0, sol1)):
		res = f(tiles)
		if res is None:
			continue
		print(
			f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
			f"{'='*len(str(DAY))}============================"
		)
Ejemplo n.º 13
0
Archivo: d19.py Proyecto: Square789/AoC
def main():
    txtrules, data = get_input(YEAR, DAY).strip().split("\n\n")
    txtrules = txtrules.strip().split("\n")
    data = data.strip().split("\n")
    rules = {}
    for rawline in txtrules:
        colp, colb = map(str.strip, rawline.split(":"))
        id_ = int(colp)
        if "\"" in colb:
            rules[id_] = RE_TERM.findall(colb)[0][0]
        else:
            alternatives = [*map(str.strip, colb.split("|"))]
            rules[id_] = tuple(
                tuple(map(int,
                          alt.strip().split())) for alt in alternatives)

    for i, f in enumerate((sol0, sol1)):
        res = f(rules, data)
        if res is None:
            continue
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 14
0
def main():
    puzzle_in = get_input(YEAR, DAY).strip().split("\n\n")
    ticket_rules = [RE_TICKET.match(line) for line in puzzle_in[0].split("\n")]
    ticket_rules = {
        match[1]: (
            range(int(match[2]),
                  int(match[3]) + 1),
            range(int(match[4]),
                  int(match[5]) + 1),
        )
        for match in ticket_rules
    }
    own_ticket = [int(i) for i in puzzle_in[1].split("\n")[1].split(",")]
    other_tickets = [[int(i) for i in line.split(",")]
                     for line in puzzle_in[2].split("\n")[1:]]

    for i, f in enumerate((sol0, sol1)):
        res = f(ticket_rules, own_ticket, other_tickets)
        if res is None:
            continue
        if i == 0:
            res = res[0]
        print(f"===[AoC 2020, {DAY}.{i} result:]===\n{res}\n"
              f"{'='*len(str(DAY))}============================")
Ejemplo n.º 15
0
def main():
    puzzle_in = get_input(YEAR, DAY).strip().split("\n")
    puzzle_in = [(x[0], int(x[1])) for x in (l.split() for l in puzzle_in)]

    ah.print_solution(puzzle_in, DAY, YEAR, sol0, sol1)
Ejemplo n.º 16
0
Archivo: d06.py Proyecto: Square789/AoC
def get_data():
    return [int(x) for x in get_input(YEAR, DAY).strip().split(",")]
Ejemplo n.º 17
0
def main():
    puzzle_in = get_input(YEAR, DAY).strip().split("\n")

    ah.print_solution(puzzle_in, DAY, YEAR, sol0, sol1)
Ejemplo n.º 18
0
import importlib
import sys

from aoc_input import get_input

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("Specify which visualization to run! [year, day]")
        sys.exit()

    try:
        year = int(sys.argv[1])
        day = int(sys.argv[2])
    except ValueError:
        print("Integer required!")
        sys.exit()

    module = importlib.import_module(f"y{year}.vis.v{day:>02}")
    module.main(get_input(year, day))