return False def count_matching(messages): count = 0 for message in messages: if is_valid(message): count += 1 return count def solved19(input_data): DECODED.clear() rules = extract_rules(input_data) decode_rules(rules) messages = extract_messages(input_data) return count_matching(messages) if __name__ == '__main__': test_data = utils.loadStringData("./data/d19_example.txt") real_data = utils.loadStringData("./data/d19_real.txt") test = solved19(test_data) real = solved19(real_data) print(utils.OUTPUT_STRING.format("example", test)) print(utils.OUTPUT_STRING.format("exercise", real))
def calculate_result(order, my_ticket): result = 1 for key in order.keys(): if key.startswith('departure'): result *= my_ticket[order[key]] return result def solved16(input_data): rules = extract_rules(input_data) tickets = extract_nearby_tickets(input_data) valid_tickets = get_valid_tickets(rules, tickets) my_ticket = extract_my_ticket(input_data) valid_tickets.append(my_ticket) field_order = determine_field_order(rules, valid_tickets) print(field_order) return calculate_result(field_order, my_ticket) if __name__ == '__main__': #test_data = utils.loadStringData("./data/d16_example2.txt") real_data = utils.loadStringData("./data/d16_real.txt") #test = solved16(test_data) real = solved16(real_data) #print(utils.OUTPUT_STRING.format("example", test)) print(utils.OUTPUT_STRING.format("exercise", real))
if not validate_element(element): return False return True def solved04(input_data): count = 0 passports = transform_input_data(input_data) for passport in passports: if is_passport_valid(passport): count += 1 return count if __name__ == '__main__': valid_test_data = utils.loadStringData("./data/d04_example_p2_valid.txt") invalid_test_data = utils.loadStringData( "./data/d04_example_p2_invalid.txt") real_data = utils.loadStringData("./data/d04_real.txt") valid = solved04(valid_test_data) invalid = solved04(invalid_test_data) real = solved04(real_data) print(utils.OUTPUT_STRING.format("example invalid", invalid)) print(utils.OUTPUT_STRING.format("example valid", valid)) print(utils.OUTPUT_STRING.format("exercise", real))
return all_bags def do_children_have_children(all_bags, children): for child in children: if len(all_bags.get(child)) > 0: return True return False def solved07(input_data): MAIN_BAG = 'shiny gold' all_bags = extract_bags_tree(input_data) count = get_children_count(all_bags, MAIN_BAG) return count - 1 if __name__ == '__main__': test_data = utils.loadStringData("./data/d07_example.txt") test_data2 = utils.loadStringData("./data/d07_example_2.txt") real_data = utils.loadStringData("./data/d07_real.txt") test = solved07(test_data) test2 = solved07(test_data2) real = solved07(real_data) print(utils.OUTPUT_STRING.format("example 1", test)) print(utils.OUTPUT_STRING.format("example 2", test2)) print(utils.OUTPUT_STRING.format("exercise", real))