def main() -> None: """Check overlapping claims on fabric.""" # Part A test_answer = 4 file = config.TestFile(test_answer) fabric = render_fabric(file.contents) test = calculate_overlapping_area(fabric) file.test(test) file = config.File() fabric = render_fabric(file.contents) result = calculate_overlapping_area(fabric) config.LOGGER.info(f'A: {result}') # Part B test_answer = 3 file = config.TestFile(test_answer) fabric = render_fabric(file.contents) test = find_non_overlapping_claim(fabric) file.test(test) file = config.File() fabric = render_fabric(file.contents) result = find_non_overlapping_claim(fabric) config.LOGGER.info(f'B: {result}')
def main() -> None: """Determine path through a map of trees.""" # Part A test_answer = 7 file = config.TestFile(test_answer) count = count_trees(file.contents, 3, 1) file.test(count) # Part B test_answer = 336 # = 2 * 7 * 3 * 4 * 2 file = config.TestFile(test_answer) slopes = [ (1, 1), # (3, 1), # This slope is already calculated. # Rather than calculate the count again, just multiply results from # the other slopes onto the existing count. (5, 1), (7, 1), (1, 2), ] for slope in slopes: count *= count_trees(file.contents, *slope) file.test(count) # Part A file = config.File() count = count_trees(file.contents, 3, 1) config.log_part_info('A', count) for slope in slopes: count *= count_trees(file.contents, *slope) config.log_part_info('B', count)
def main() -> None: """Navigate given the ship's directions.""" test_answer = 25 # E 17, S 8 file = config.TestFile(test_answer) test = manhattan_distance(file.contents) file.test(test) file = config.File() result = manhattan_distance(file.contents) config.LOGGER.info(result)
def main() -> None: """Simulate cycles for Conway Cubes.""" test_answer = 112 file = config.TestFile(test_answer) test = iterate_conway_cubes(file.contents) file.test(test) file = config.File() result = iterate_conway_cubes(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 15 test_file = config.TestFile(test_answer) test = sum_risk_in_map(test_file.contents) test_file.test(test) file = config.File() result = sum_risk_in_map(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 40 test_file = config.TestFile(test_answer) test = get_least_risk(test_file.contents) test_file.test(test) file = config.File() result = get_least_risk(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 26 test_file = config.TestFile(test_answer) test = count_1_4_7_8s_in_output(test_file.contents) test_file.test(test) file = config.File() result = count_1_4_7_8s_in_output(file.contents) config.LOGGER.info(result)
def main() -> None: """Read program data from port computer system.""" test_answer = 165 file = config.TestFile(test_answer) test = read_program_data(file.contents) file.test(test) file = config.File() result = read_program_data(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 37 test_file = config.TestFile(test_answer) test = calculate_min_crab_sub_fuel(test_file.contents) test_file.test(test) file = config.File() result = calculate_min_crab_sub_fuel(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 1134 test_file = config.TestFile(test_answer) test = find_basins(test_file.contents) test_file.test(test) file = config.File() result = find_basins(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 900 test_file = config.TestFile(test_answer) test = calculate_submarine_position(test_file.contents) test_file.test(test) file = config.File() result = calculate_submarine_position(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 288957 test_file = config.TestFile(test_answer) test = fix_incomplete_lines(test_file.contents) test_file.test(test) file = config.File() result = fix_incomplete_lines(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 17 test_file = config.TestFile(test_answer) test = calculate_dots_in_paper(test_file.contents) test_file.test(test) file = config.File() result = calculate_dots_in_paper(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 1924 test_file = config.TestFile(test_answer) test = play_bingo(test_file.contents) test_file.test(test) file = config.File() result = play_bingo(file.contents) config.LOGGER.info(result)
def main() -> None: """Parse and read train ticket.""" test_answer = 71 # 4 + 55 + 12 file = config.TestFile(test_answer) test = find_sum_all_invalid_values(file.contents) file.test(test) file = config.File() result = find_sum_all_invalid_values(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 1588 test_file = config.TestFile(test_answer) test = combine_polymers_and_diff_most_least(test_file.contents) test_file.test(test) file = config.File() result = combine_polymers_and_diff_most_least(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 230 test_file = config.TestFile(test_answer) test = determine_life_support_rating(test_file.contents) test_file.test(test) file = config.File() result = determine_life_support_rating(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 26984457539 test_file = config.TestFile(test_answer) test = lanternfish.count_lanternfish(test_file.contents, days=256) test_file.test(test) file = config.File() result = lanternfish.count_lanternfish(file.contents, days=256) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 61229 test_file = config.TestFile(test_answer) test = determine_output_sum(test_file.contents) test_file.test(test) file = config.File() result = determine_output_sum(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 26397 test_file = config.TestFile(test_answer) test = catch_syntax_errors(test_file.contents) test_file.test(test) file = config.File() result = catch_syntax_errors(file.contents) config.LOGGER.info(result)
def main() -> None: """Read and count valid passports.""" test_answer = 2 file = config.TestFile(test_answer) test = validate(file.contents) file.test(test) file = config.File() result = validate(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 5934 test_file = config.TestFile(test_answer) test = lanternfish.count_lanternfish(test_file.contents) test_file.test(test) file = config.File() result = lanternfish.count_lanternfish(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 1656 test_file = config.TestFile(test_answer) test = count_octopus_flashes(test_file.contents) test_file.test(test) file = config.File() result = count_octopus_flashes(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 5 test_file = config.TestFile(test_answer) test = calculate_depth_increases(test_file.contents) test_file.test(test) file = config.File() result = calculate_depth_increases(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 112 test_file = config.TestFile(test_answer) test = count_hitting_trajectories(test_file.contents) test_file.test(test) file = config.File() result = count_hitting_trajectories(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 12 test_file = config.TestFile(test_answer) test = calculate_graph_intersections(test_file.contents) test_file.test(test) file = config.File() result = calculate_graph_intersections(file.contents) config.LOGGER.info(result)
def main() -> None: """Run the main code.""" test_answer = 198 test_file = config.TestFile(test_answer) test = determine_power_consumption(test_file.contents) test_file.test(test) file = config.File() result = determine_power_consumption(file.contents) config.LOGGER.info(result)
def main() -> None: """Check the seating of the ferry.""" test_answer = 26 file = config.TestFile(test_answer) test = simulate_seating(file.contents) file.test(test) file = config.File() result = simulate_seating(file.contents) config.LOGGER.info(result)
def main() -> None: """Check the guard records.""" test_answer = 240 # Guard #10 * common minute 24 file = config.TestFile(test_answer, sort=True) test = determine_sleepiest_guard(file.contents) file.test(test) file = config.File(sort=True) file.write_to_file() result = determine_sleepiest_guard(file.contents) config.LOGGER.info(result)
def main() -> None: """Process customs declaration forms.""" # Part A test_answer = 3 + 3 + 3 + 1 + 1 # 11 file = config.TestFile(test_answer) test = count_answerable_cdf(file.contents) file.test(test) file = config.File() result = count_answerable_cdf(file.contents) config.LOGGER.info(result) # Part B test_answer = 3 + 0 + 1 + 1 + 1 # 6 file = config.TestFile(test_answer) test = count_mutual_answerable_cdf(file.contents) file.test(test) file = config.File() result = count_mutual_answerable_cdf(file.contents) config.LOGGER.info(result)