def main(): input_lines = utils.get_input_lines(INPUT_FILE) count = 0 triangles = [] one = [] two = [] three = [] for index, line in enumerate(input_lines): sides = [int(x) for x in line.split()] one.append(sides[0]) two.append(sides[1]) three.append(sides[2]) if len(one) == 3: triangles.append(one.copy()) triangles.append(two.copy()) triangles.append(three.copy()) one = [] two = [] three = [] for triangle in triangles: valid = False if valid_triangle(triangle): count += 1 valid = True print("{}: {} - valid:{}".format(index, triangle, valid)) print("Total invalid: {}".format(count))
def main(): input_lines = utils.get_input_lines(INPUT_FILE) for index, line in enumerate(input_lines): print("{}: {}".format(index, line)) valid_sectors_sum = sum(valid_checksums)
def main(): input_lines = utils.get_input_lines(INPUT_FILE) for index, line in enumerate(input_lines): is_valid = False room_name, sector_id, checksum = split_room_string(line) if is_real_room(room_name, checksum): is_valid = True readable_name = decrypt_name(room_name, sector_id) print("{}: {}".format(sector_id, readable_name))
def main(): input_lines = utils.get_input_lines(INPUT_FILE) count = 0 for index, line in enumerate(input_lines): valid = False sides = [int(x) for x in line.split()] if valid_triangle(sides): count += 1 valid = True print("{}: {} - valid:{}".format(index, line, valid)) print("Total invalid: {}".format(count))
def main(): input_lines = utils.get_input_lines(INPUT_FILE) valid_checksums = [] for index, line in enumerate(input_lines): is_valid = False room_name, sector_id, checksum = split_room_string(line) if is_real_room(room_name, checksum): is_valid = True valid_checksums.append(sector_id) print("{}: {} - is valid: {}".format(index, line, is_valid)) valid_sectors_sum = sum(valid_checksums) print("Sum of Real Room Sector IDs: {}".format(valid_sectors_sum))
def main(): input_lines = utils.get_input_lines(INPUT_FILE) bathroom_code = "" pos = [1,1] for index, line in enumerate(input_lines): print("{index} - Last Number: {last_num} - instructions: {line}".format(index=index, last_num=keypad[pos[0]][pos[1]], line=line)) for letter in line: direction = directions.get(letter, [0,0]) next_pos = [pos[0]+direction[0], pos[1]+direction[1]] if all([next_pos[0] >= 0, next_pos[0] <= 2, next_pos[1] >= 0, next_pos[1] <= 2]): pos = next_pos # print(" {} - {}".format(letter, keypad[pos[0]][pos[1]])) bathroom_code += "{}".format(keypad[pos[0]][pos[1]]) print("Bathroom Code is: {}".format(bathroom_code))
def main(): input_lines = utils.get_input_lines(INPUT_FILE) instructions = input_lines[0].split(', ') # Starting situation pos = [0,0] direction_index = 0 for index, step in enumerate(instructions): print("{index}: @{pos} facing {dir}. Next going {step}".format(index=index, pos=pos, dir=direction_names[direction_index], step=step)) turn_direction = step[0] distance = int(step[1:]) direction_index = next_direction_index(direction_index,turn_direction) pos[0] += direction_mods[direction_index][0]*distance pos[1] += direction_mods[direction_index][1]*distance print("Final Position: {}".format(pos)) final_distance = abs(pos[0])+abs(pos[1]) print("Final Distance: {}".format(final_distance))
def main(): input_lines = utils.get_input_lines(INPUT_FILE) bathroom_code = "" pos = [0,2] for index, line in enumerate(input_lines): print("{index} - Last Number: {last_num} - instructions: {line}".format(index=index, last_num=keypad[pos[1]][pos[0]], line=line)) for letter in line: direction = directions.get(letter, [0,0]) next_pos = [pos[0]+direction[0], pos[1]+direction[1]] if all( [ next_pos[0] >= 0, next_pos[0] <= 4, next_pos[1] >= 0, next_pos[1] <= 4 ]) and keypad[next_pos[1]][next_pos[0]]: pos = next_pos bathroom_code += "{}".format(keypad[pos[1]][pos[0]]) print("Bathroom Code is: {}".format(bathroom_code))
def main(): input_lines = utils.get_input_lines(INPUT_FILE) instructions = input_lines[0].split(', ') # Starting situation pos = [0,0] direction_index = 0 visited_locations = [] final_pos = None for index, step in enumerate(instructions): print("{index}: @{pos} facing {dir}. Next going {step}. Places Visited: {visited}".format(index=index, pos=pos, dir=direction_names[direction_index], step=step, visited=visited_locations)) turn_direction = step[0] distance = int(step[1:]) direction_index = next_direction_index(direction_index,turn_direction) for x in range(distance): pos[0] += direction_mods[direction_index][0] pos[1] += direction_mods[direction_index][1] if pos in visited_locations: print("Returned to a visited position: {}".format(pos)) final_pos = pos break else: visited_locations.append(pos.copy()) if final_pos: # Answer was found, break out of here too break print("Final Position: {}".format(final_pos)) final_distance = abs(final_pos[0])+abs(final_pos[1]) print("Final Distance: {}".format(final_distance))