def __init__(self, filename): positions = read_input(filename, separator='\n') regex = r"x=(-?\d+).+y=(-?\d+).+z=(-?\d+)" self.bodies = [] for body_pos in positions: match = re.search(regex, body_pos) pos = int(match.group(1)), int(match.group(2)), int(match.group(3)) self.bodies.append(CelestialBody(pos))
def main(): path1, path2 = read_input('input', separator='\n') wire1, wire2 = to_points(str.split(path1, ',')), to_points(str.split(path2, ',')) min_dist = get_min_distance(wire1, wire2) print('Answer to Day 3 - Part 1: {}'.format(min_dist)) min_delay = get_min_delay(wire1, wire2) print('Answer to Day 3 - Part 2: {}'.format(min_delay))
def main(): # Part day1 modules = [int(number) for number in read_input('input', '\n')] fuel_requirements = [floor(module / 3) - 2 for module in modules] total_fuel_requirement = sum(fuel_requirements) print('Answer for Part day1: {}'.format(total_fuel_requirement)) # Part day2 new_fuel_requirements = [ calculate_fuel_requirements(module) for module in modules ] print('Answer for Part day2: {}'.format(sum(new_fuel_requirements)))
def main(): output_resolution = 8 input_signal = list(map(int, read_input('input'))) signal = fft(input_signal, 21, True) print('Answer for Day16 - Part 1: {}'.format(''.join( map(str, signal[:output_resolution])))) input_signal *= 10000 offset = int(''.join(map(str, input_signal[:7]))) signal = fft(input_signal[offset:], 100, True) print('Answer for Day16 - Part 2: {}'.format(''.join( map(str, signal[:output_resolution]))))
def main(): program = list(map(int, read_input(separator=','))) memory = program.copy() memory[1] = 12 memory[2] = 2 memory = run_program(memory) print('Answer to Day 2 - Part 1: {}'.format(memory[0])) for noun in range(99): for verb in range(99): memory = program.copy() memory[1] = noun memory[2] = verb memory = run_program(memory) if memory[0] == 19690720: print('Answer to Day 2 - Part 2: noun {} verb {}; Answer: {}'. format(noun, verb, 100 * noun + verb))
def main(): asteroid_map = read_input('test_input4', '\n') print('Answer for Day10 - Part 1: {}'.format( new_monitor_station(asteroid_map))) print('Answer for Day10 - Part 2: {}'.format( vaporize_asteroid(asteroid_map, (11, 13), 200)))
def test_tc0(self): asteroid_map = read_input('day10/test_input0', '\n') self.assertEqual(new_monitor_station(asteroid_map), ((3, 4), 8))
def test_tc4(self): asteroid_map = read_input('day10/test_input4', '\n') self.assertEqual(new_monitor_station(asteroid_map), ((11, 13), 210))
def test_tc3(self): asteroid_map = read_input('day10/test_input3', '\n') self.assertEqual(new_monitor_station(asteroid_map), ((6, 3), 41))
def test_tc2(self): asteroid_map = read_input('day10/test_input2', '\n') self.assertEqual(new_monitor_station(asteroid_map), ((1, 2), 35))
def test_tc1(self): asteroid_map = read_input('day10/test_input1', '\n') self.assertEqual(new_monitor_station(asteroid_map), ((5, 8), 33))
def test_tc0(self): input_signal = list(map(int, read_input('day16/test_input0'))) signal = fft(input_signal, 4) self.assertEqual(''.join(map(str, signal[:8])), '01029498')
def test_tc2(self): input_signal = list(map(int, read_input('day16/test_input2'))) signal = fft(input_signal, 100) self.assertEqual(''.join(map(str, signal[:8])), '73745418')
def test_tc1(self): input_signal = list(map(int, read_input('day16/test_input1'))) signal = fft(input_signal, 100) self.assertEqual(''.join(map(str, signal[:8])), '24176176')
def main(): reaction_list = read_input('test_input3', '\n') reactions = parse_reactions(reaction_list) print('Answer for Day11 - Part 1: {}'.format( calculate_requirements(reactions, 'FUEL'))) print('Answer for Day11 - Part 2: {}'.format(2))
def main(): orbit_map = read_input('input', separator='\n') print('Answer for Day6 - Part 1: {}'.format(calculate_orbits(orbit_map))) print('Answer for Day6 - Part 2: {}'.format( calculate_min_transfers(orbit_map, 'YOU', 'SAN')))
def test_tc1(self): self.assertEqual( calculate_orbits(read_input('day6/test_input1', '\n')), 42)
def test_tc2(self): self.assertEqual( calculate_min_transfers(read_input('day6/test_input2', '\n'), 'YOU', 'SAN'), 4)
def load(filename): return list(map(int, read_input(filename=filename, separator=',')))
def main(): image_data = list(map(int, read_input())) image_width, image_height = 25, 6 print('Answer for Day7 - Part 1: {}'.format(calculate_checksum(image_data, image_width, image_height))) print('Answer for Day7 - Part 2') print_image(decode_image(image_data, image_width, image_height), image_width, image_height)
def test_tc3(self): input_signal = list(map(int, read_input('day16/test_input3'))) signal = fft(input_signal, 100) self.assertEqual(''.join(map(str, signal[:8])), '52432133')