Example #1
0
def part_one():
    train_rules, your_ticket, nearby_tickets = get_train_data()
    error_rate = 0
    for nearby_ticket in nearby_tickets:
        error_rate_ticket, invalid = get_error_rate(nearby_ticket, train_rules)
        error_rate += error_rate_ticket
    ut.print_answer(error_rate)
Example #2
0
def part_two():
    repaired_instructions = get_repaired_instructions()
    for instructions in repaired_instructions:
        hgc = HandheldGameConsole(instructions)
        hgc.run()
        if hgc.pointer == len(instructions):
            ut.print_answer(hgc.accumulator)
Example #3
0
def part_two():
    password_data = get_password_data()
    count = 0
    for policy in password_data:
        if policy.is_valid_password_v2():
            count += 1
    ut.print_answer(count)
Example #4
0
def part_one():
    puzzle = Puzzle(get_puzzle_pieces())
    puzzle.assemble()
    answer = 1
    for tile_id in puzzle.get_corner_pieces():
        answer *= int(tile_id)
    ut.print_answer(answer)
Example #5
0
def part_two():
    recursive_combat_game = RecursiveCombatGame({
        "player_1": deck1,
        "player_2": deck2
    })
    winner, loser = recursive_combat_game.play()
    ut.print_answer(recursive_combat_game.calc_score(winner))
Example #6
0
def part_one():
    foods = get_food_data()
    possible_allergens = get_possible_allergens(foods)
    allergens = get_allergens(possible_allergens)
    non_allergens = get_non_allergens(allergens, get_all_ingredients(foods))
    answer = count_non_allergen_occurrences(foods, non_allergens)
    ut.print_answer(answer)
Example #7
0
def part_two():
    passports = get_passports()
    valid_passports = 0
    for passport in passports:
        valid = is_valid_v2(passport)
        if valid:
            valid_passports += 1
    ut.print_answer(valid_passports)
Example #8
0
def part_one():
    jolt_diff = []
    jolt = 0

    for adapter in adapters:
        jolt_diff.append(adapter - jolt)
        jolt = adapter
    one_diff_count = jolt_diff.count(1)
    three_diff_count = jolt_diff.count(3)

    ut.print_answer(one_diff_count * three_diff_count)
Example #9
0
def part_two():
    train_rules, your_ticket, nearby_tickets = get_train_data()
    valid_tickets = get_valid_tickets(nearby_tickets, train_rules)
    correct_rule_order = get_correct_rule_order(valid_tickets, train_rules)

    answer = 1
    for rule_index in correct_rule_order.keys():
        rule_name = correct_rule_order[rule_index]
        if rule_name.split()[0] == 'departure':
            answer *= your_ticket[rule_index]
    ut.print_answer(answer)
Example #10
0
def part_one():
    bus_id = 0
    min_wait = math.inf

    for bus in buses:
        bus_cycle = bus[0]
        wait_time = waiting_time(bus_cycle)
        if wait_time < min_wait:
            min_wait = wait_time
            bus_id = bus[0]

    ut.print_answer(bus_id * min_wait)
Example #11
0
def part_two():
    puzzle = Puzzle(get_puzzle_pieces())
    puzzle.assemble()
    final_image = puzzle.merge_image_pieces()
    answer = math.inf
    for i in range(4):
        answer = min(match_sea_monster(copy.copy(final_image)), answer)
        final_image.rotate()
    final_image.flip()
    for i in range(4):
        answer = min(match_sea_monster(copy.copy(final_image)), answer)
        final_image.rotate()
    ut.print_answer(answer)
Example #12
0
def part_two():
    t_start = 0
    t_offset = 1

    for i in range(len(buses)):
        bus_group = buses[0:i + 1]
        t = t_start
        while True:
            if all([is_aligned(bus[0], bus[1], t) for bus in bus_group]):
                ut.print_answer(t)
                t_start = t
                t_offset = ut.lcm([bus[0] for bus in bus_group])
                break
            else:
                t += t_offset
Example #13
0
def part_one():
    ut.print_answer(play(2020))
Example #14
0
def part_one():
    instructions = [line.split() for line in ut.read_input().splitlines()]
    hgc = HandheldGameConsole(instructions)
    hgc.run()
    ut.print_answer(hgc.accumulator)
Example #15
0
def part_two():
    answer = count_arrangements()
    ut.print_answer(answer)
Example #16
0
def part_one():
    max_id = max([get_seat_id(b_pass) for b_pass in boarding_passes])
    ut.print_answer(max_id)
Example #17
0
def part_one():
    combat_game = CombatGame(deck1, deck2)
    ut.print_answer(combat_game.play())
Example #18
0
def part_one():
    valid_messages = dict.fromkeys(get_valid_messages('0'), 1)
    answer = sum([valid_messages.get(message, 0) for message in messages])
    ut.print_answer(answer)
Example #19
0
def part_two():
    answer = sum([count_answers_v2(group) for group in group_answers])
    ut.print_answer(answer)
Example #20
0
def part_one():
    program = Program()
    instructions = get_instructions()
    program.initialize(instructions)
    ut.print_answer(program.sum_memory())
Example #21
0
def part_two():
    answer = [is_valid_message(message) for message in messages].count(True)
    ut.print_answer(answer)
Example #22
0
def part_one():
    slope = (3, 1)
    trees = ride(slope)
    ut.print_answer(trees)
Example #23
0
def part_one():
    seat_map = get_seat_map()
    changes = True
    while changes:
        seat_map, changes = simulate(seat_map)
    ut.print_answer(count_occupied_seats(seat_map))
Example #24
0
def part_two():
    slopes = [(1, 1), (3, 1), (5, 1), (7, 1), (1, 2)]
    answer = 1
    for slope in slopes:
        answer *= ride(slope)
    ut.print_answer(answer)
Example #25
0
def part_two():
    ut.print_answer(play(30000000))
Example #26
0
def part_two():
    boat = WayPointBoat()
    boat.follow_instructions(boat_instructions)
    ut.print_answer(boat.get_manhattan_distance_traveled())
Example #27
0
def part_one():
    hex_grid = HexGrid()
    hex_grid.init_tiles(get_instructions())
    ut.print_answer(hex_grid.count_black())
Example #28
0
def part_one():
    answer = sum([count_answers(group) for group in group_answers])
    ut.print_answer(answer)
Example #29
0
def part_two():
    ut.print_answer(
        sum([
            int(ExpressionEvaluator(expression).evaluate_v2())
            for expression in expressions
        ]))
Example #30
0
def part_two():
    conway_dimension = ConwayDimension(4)
    cycles = 6
    for i in range(cycles):
        conway_dimension.cycle()
    ut.print_answer(len(conway_dimension.active))