def test_with_input(self): lines = read_input_lines(16) self.assertEqual(part_2(lines), 1053686852011)
def test_with_input(self): lines = utils.read_input_lines(12) self.assertEqual(part_2(lines), 29401)
def test_with_input(self): layout = utils.read_input_lines(11) self.assertEqual(part_2(layout), 2259)
def test_with_input(self): lines = utils.read_input_lines(4) self.assertEqual(day4.part1.count_valid_passports(lines), 242)
def test_with_input(self): program = read_input_lines(14) self.assertEqual(part_2(program), 3608464522781)
def test_with_input(self): lines = utils.read_input_lines(7) self.assertEqual(day7.part_2(lines), 57281)
def test_with_input(self): joltages = utils.read_input_lines(10) self.assertEqual(day10.part_1(joltages), 2310)
def test_with_input(self): lines = utils.read_input_lines(2) self.assertEqual(day2.part_2_valid_passwords(lines), 699)
def test_with_input(self): lines = read_input_lines(20) self.assertEqual(part_1(lines), 15670959891893)
def test_with_input(self): lines = utils.read_input_lines(8) self.assertEqual(day8.part_2(lines), 552)
def test_with_input(self): lines = read_input_lines(22) self.assertEqual(part_1(lines), 31455)
from utils import read_input_lines INPUT = read_input_lines(14)
def test_with_input(self): lines = read_input_lines(18) self.assertEqual(sum(part_2(line) for line in lines), 20394514442037)
def test_with_input(self): lines = read_input_lines(18) self.assertEqual(sum(part_1(line) for line in lines), 650217205854)
def test_with_input(self): lines = read_input_lines(17) self.assertEqual(part_2(lines), 1884)
def test_with_input(self): lines = utils.read_input_lines(9) self.assertEqual(day9.part_1(lines, 25), 26134589)
def test_with_input(self): lines = read_input_lines(21) self.assertEqual(part_2(lines), "rhvbn,mmcpg,kjf,fvk,lbmt,jgtb,hcbdb,zrb")
def test_with_input(self): invalid_number = 26134589 lines = utils.read_input_lines(9) self.assertEqual(day9.part_2(lines, invalid_number), 3535124)
from typing import Tuple, Dict from utils import read_input_lines INPUT = read_input_lines('day3') Point = Tuple[int, int] WirePoints = Dict[Point, int] def part1(wire1: WirePoints, wire2: WirePoints) -> int: def dist(point: Point) -> int: x, y = point return abs(x) + abs(y) return min(map(dist, set(wire1.keys()).intersection(wire2))) def part2(wire1: WirePoints, wire2: WirePoints) -> int: return min(wire1[point] + wire2[point] for point in set(wire1.keys()).intersection(wire2.keys())) def get_wire_points(wire_str: str) -> WirePoints: points = {} x = 0 y = 0 i_step = 0 for step in wire_str.split(','): direction = step[0] dist = int(step[1:])
def test_with_input(self): lines = read_input_lines(24) self.assertEqual(part_2(lines), 3831)
def test_with_input(self): joltages = utils.read_input_lines(10) self.assertEqual(day10.part_2(joltages), 64793042714624)
import re from typing import List import numpy as np from utils import read_input_lines, test_case INPUT = read_input_lines('day12') def parse_input(inp: List[str]) -> np.ndarray: l = [] for line in inp: x, y, z = map(int, re.findall(r'-?\d+', line)) l.append(np.array([x, y, z, 0, 0, 0])) return np.array(l) def total_energy(moons: np.ndarray) -> int: te = 0 for x, y, z, dx, dy, dz in moons: pe = abs(x) + abs(y) + abs(z) ke = abs(dx) + abs(dy) + abs(dz) te += pe * ke return te # @numba.njit
def test_with_input(self): program = read_input_lines(14) self.assertEqual(part_1(program), 12610010960049)
def test_with_input(self): lines = read_input_lines(13) self.assertEqual(part_1(lines), 259)
from utils import read_input_lines commands = read_input_lines("day_8_input.txt") def split_command(cmd): tokens = cmd.split() command = tokens[0] offset = int(tokens[1]) return (command, offset) def parse_command_lines(lines): return [split_command(c) for c in commands] def run_commands(cmds): acc = 0 visited_command_ids = set() got_into_inifinite_loop = False command_offset = 0 while not got_into_inifinite_loop: if command_offset == len(commands): print("Finished the program! Yay") break cmd = cmds[command_offset] # print(cmd, command_offset) command = cmd[0] action = cmd[1] visited_command_ids.add(command_offset) if command == "nop":
def test_with_input(self): bus_ids = read_input_lines(13)[1] self.assertEqual(part_2(bus_ids), 210612924879242)
def test_with_input(self): lines = utils.read_input_lines(6) self.assertEqual(day6.part_2(lines), 3550)
def test_with_input(self): entries = [int(n) for n in utils.read_input_lines(1)] self.assertEqual(day1.part_2_answer(entries), 162292410)
def test_with_input(self): lines = read_input_lines(25) self.assertEqual(part_1(lines), 297257)
from utils import read_input_lines import copy seating = read_input_lines('day_11.txt') for i in range(len(seating)): seating[i] = list(seating[i]) print(len(seating)) print(len(seating[0])) #Part 1 def count_occupied_adjacent_seats(seating_state, row, column): row_count = len(seating_state) column_count = len(seating_state[0]) occupied_count = 0 for r in range(row - 1, row + 2): for c in range(column - 1, column + 2): #out of bound or "target" place if r < 0 or r > row_count - 1 or c < 0 or c > column_count - 1 or (c == column and r == row): continue seat = seating_state[r][c] if seat == '#': occupied_count += 1 return occupied_count example = [['#', '.', '#'], ['#', '#', '#'],