def parse_data_into_groups(data_path): answer_groups = [] current_group = [] for line in read_lines(data_path): if line != "\n": current_group.append(line.strip()) else: answer_groups.append(AnswerGroup(current_group)) current_group = [] answer_groups.append(AnswerGroup(current_group)) return answer_groups
def get_passports(input_path): passport_list = [] passport = "" for line in read_lines(input_path): if line == "\n": passport_list.append(passport) passport = "" else: passport += " " + line.strip() # put the last passport in! passport_list.append(passport) return passport_list
def get_num_valid_passwords(pw_validator): num_valid = 0 for line in read_lines("day2/day2.txt"): if check_password_string(line, pw_validator): num_valid += 1 print(num_valid)
if direction in FORWARD_CHARS: low = midpoint else: high = midpoint return low def get_seat_id(directions): row = use_coords(directions[:7], "row") col = use_coords(directions[7:], "col") seat_id = row * 8 + col # print(f"row: {row}, col: {col}, id: {seat_id}") return seat_id assert get_seat_id("BFFFBBFRRR") == 567 assert get_seat_id("FFFBBBFRRR") == 119 assert get_seat_id("BBFFBBFRLL") == 820 seat_ids = { seat_id for seat_id in [get_seat_id(seat.strip()) for seat in read_lines("day5/data.txt")] } print("highest seat id", max(seat_ids)) for i in range(min(seat_ids), max(seat_ids)): if i not in seat_ids: print(f"your seat is {i}!")
row_num = 0 col_num = 0 while row_num < self.map_height: if self.tree_map[row_num][col_num] == self.TREE_CHAR: self.num_trees += 1 row_num += self.move_down col_num = (col_num + self.move_right) % self.map_width return self.num_trees multiply_slopes = [[1, 1], [1, 3], [1, 5], [1, 7], [2, 1]] test_map_panel = [] for line in read_lines("day3/test.txt"): test_map_panel.append([space for space in line.strip()]) test_traversal = MapTraversal(test_map_panel, 1, 3) assert test_traversal.run() == 7 test_results = [ MapTraversal(test_map_panel, x, y).run() for [x, y] in multiply_slopes ] assert reduce(mul, test_results) == 336 part_1_map_panel = [] for line in read_lines("day3/day3.txt"): part_1_map_panel.append([space for space in line.strip()]) part_1_traversal = MapTraversal(part_1_map_panel, 1, 3)
def run(datapath, seat_selection_method): data = [list(seats.strip()) for seats in read_lines(datapath)] final = get_final_arrangement(data, seat_selection_method) return get_num_occupied_seats(final)
def compose_bag_dict(datapath): bag_dict = {} for line in read_lines(datapath): bag_type, bags_inside = get_bag_name_and_contents(line.strip()) bag_dict[bag_type] = bags_inside return bag_dict