def day14_main(): print("2020 AOC Challenge Day 14: Docking Data") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) ret = [] for line in raw_texts: if line == "": continue split_lines = line.split(" = ") if MASK_KEY in split_lines[0]: ret.append((split_lines[0], split_lines[1])) else: number = int(split_lines[1]) string = "" for ch in split_lines[0]: if ch.isalpha() or ch == "[" or ch == "]": continue string += ch ret.append((int(string), number)) part1_answer = problem_part1(ret) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(ret) print("Part 2, Answer: {}".format(part2_answer))
def get_fresh_input(): input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) numbers = lines[0].split(",") numbers = list(map(lambda x: int(x), numbers)) return numbers
def day4_main(): print("2020 AOC Challenge Day 4: Passport Processing") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) pp = {} lines = [] for i, line in enumerate(raw_texts): if not line: lines.append(pp) pp = {} continue split_line = line.split(" ") kv = list(map(lambda x: x.split(":"), split_line)) for i in range(len(kv)): for j in range(1): key = kv[i][j] value = kv[i][j + 1] pp[key] = value part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day2_main(): input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) part1_answer = inventory_management_system_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = inventory_management_system_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day5_main(): print("2020 AOC Challenge Day 4: Passport Processing") input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day5_main(): print("2019 AOC Challenge Day 5") input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) numbers = list(map(lambda x: int(x), lines[0].split(","))) print (len(numbers)) part1_answer = problem_part1(numbers) print("Part 1, Answer: {}".format(part1_answer))
def day10_main(): print("2020 AOC Challenge Day 7: Handy Haversacks") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) lines = [int(x) for x in raw_texts if x != ''] part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day6_main(): print("2019 AOC Challenge Day 6") input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) orbits = [parse_line(line) for line in lines] part1_answer = problem_part1(orbits) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(orbits) print("Part 2, Answer: {}".format(part2_answer))
def day11_main(): print("2020 AOC Challenge Day 11: Seating System") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) lines = [list(x) for x in raw_texts if x != ''] part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day1_main(): print("2019 AOC Challenge Day1") input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) fuels = list(map(lambda x: int(x), lines)) part1_answer = rocket_equation_part1(fuels) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = rocket_equation_part2(fuels) print("Part 2, Answer: {}".format(part2_answer))
def day7_main(): print("2019 AOC Challenge Day 7") input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) lines = parse_input(lines) part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day12_main(): print("2020 AOC Challenge Day 12: Boaty McBoatFace") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) lines = [(x[0], int(x[1:])) for x in raw_texts if x != ''] part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day3_main(): print("2019 AOC Challenge Day 3") input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) wire1, wire2 = lines[0].split(","), lines[1].split(",") part1_answer = problem_part1(wire1, wire2) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(wire1, wire2) print("Part 2, Answer: {}".format(part2_answer))
def day1_main(): print("2020 AOC Challenge Day 1: Report Repair") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) lines = [int(number) for number in raw_texts] part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day13_main(): print("2020 AOC Challenge Day 13: Shuttle Search") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) earliest_time = int(raw_texts[1]) bus_times = [x for x in raw_texts[2].split(",")] part1_answer = problem_part1(earliest_time, bus_times) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(earliest_time, bus_times) print("Part 2, Answer: {}".format(part2_answer))
def day1_main(): input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) start = 0 calibrations = list(map(lambda x: int(x), lines)) part1_answer = chronal_calibration_part1(calibrations, start) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = chronal_calibration_part2(calibrations, start) print("Part 2, Answer: {}".format(part2_answer))
def day4_main(): print("2019 AOC Challenge Day 4") input_path = path_join(directory_path, input_filename) lines = read_file_line(input_path) number_range = lines[0].split('-') num_min, num_max = int(number_range[0]), int(number_range[1]) print(lines) part1_answer = problem_part1(num_min, num_max) print("Part 1, Answer: {}".format(len(part1_answer))) part2_answer = problem_part2(num_min, num_max) print("Part 2, Answer: {}".format(part2_answer))
def day2_main(): print("2020 AOC Challenge Day 2: Password Philosophy") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) lines = [] for line in raw_texts: split_line = line.split(" ") split_line[1] = split_line[1][:-1] lines.append(split_line) part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day8_main(): print("2020 AOC Challenge Day 8: Handheld Halting") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) lines = [] for line in raw_texts: if line == "": continue split_line = line.split(" ") lines.append((split_line[0], int(split_line[1]))) part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day15_main(): print("2020 AOC Challenge Day 15: Docking Data") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) ret = None for line in raw_texts: if not line: continue ret = line.split(",") ret = [int(x) for x in ret] part1_answer = problem_part1(ret) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(ret) print("Part 2, Answer: {}".format(part2_answer))
def day6_main(): print("2020 AOC Challenge Day 6: Custom Custom") input_path = path_join(directory_path, input_filename) answers = read_file_line(input_path) lines = [] people = [] for answer in answers: if answer == "": lines.append(people) people = [] else: people.append(answer) lines.append(people) part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))
def day16_main(): print("2020 AOC Challenge Day 16: T i c k e t t r a n s l a t i o n") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) valid_ranges = [] your_ticket = [] nearby_tickets = [] is_your_ticket = False is_near_ticket = False for line in raw_texts: if line == "": continue if not is_your_ticket and not is_near_ticket: if YOUR_TICKET in line: is_your_ticket = True continue split_line = line.split(":") split_range = split_line[1].split(" or ") split_number = [l.split("-") for l in split_range] temp = [] for numbers in split_number: numbers = [int(x) for x in numbers] temp.append((numbers[0], numbers[1])) valid_ranges.append(temp) elif not is_near_ticket: your_ticket = [int(x) for x in line.split(",")] is_near_ticket = True else: if NEARBY_TICKET in line: continue near = [int(x) for x in line.split(",")] nearby_tickets.append(near) part1_answer = problem_part1(valid_ranges, nearby_tickets) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(valid_ranges, nearby_tickets, your_ticket) print("Part 2, Answer: {}".format(part2_answer))
def day7_main(): print("2020 AOC Challenge Day 7: Handy Haversacks") input_path = path_join(directory_path, input_filename) raw_texts = read_file_line(input_path) lines = [] for line in raw_texts[1:]: split_line = line.split(" ") # Bag Source (Prefix color) and Destina source_bag = " ".join(split_line[:2]) destination_bags = [] if split_line[4] != "no": for i in range(4, len(split_line), 4): count = int(split_line[i]) color = " ".join(split_line[i+1:i+3]) destination_bags.append((count, color)) lines.append([source_bag, destination_bags]) part1_answer = problem_part1(lines) print("Part 1, Answer: {}".format(part1_answer)) part2_answer = problem_part2(lines) print("Part 2, Answer: {}".format(part2_answer))