def get_acceptable_password_count_part1(input_file): acceptable_password_count = 0 values = get_input_as_strings(input_file) for value in values: password_obj = _format_input(value) if _meets_password_policy_part1(password_obj): acceptable_password_count += 1 return acceptable_password_count
def get_acceptable_password_count_part2(input_file): acceptable_password_count = 0 values = get_input_as_strings(input_file) for value in values: logging.debug(f'{value=}') password_obj = _format_input(value) if _meets_password_policy_part2(password_obj): acceptable_password_count += 1 return acceptable_password_count
def _parse_input(input_file): parsed_lines = [] lines = get_input_as_strings(input_file) for line in lines: op, amount = line.split() dict_op = {'operation': op, 'amount': int(amount), 'called_count': 0} parsed_lines.append(dict_op) # print(json.dumps(parsed_lines, indent=4)) operations = Operations(parsed_lines) return operations
def _parse_input(input_file): rules = [] lines = get_input_as_strings(input_file) for line in lines: split_string = line.split(' bags contain ') bag_name = split_string[0] contents = _parse_contents(split_string[1]) bag = Bag(bag_name, contents) rules.append(bag) return rules
def everyone_answered_yes(input_file): group_answers = [] lines = get_input_as_strings(input_file) answers = [] for line in lines: if line != '': answers.append(set(line)) else: group_answers.append(set.intersection(*answers)) answers.clear() group_answers.append(set.intersection(*answers)) count = 0 for a in group_answers: count += len(a) return count
def _parse_passports(input_file): passports = [] lines = get_input_as_strings(input_file) passport = '' for line in lines: if line != '': if passport == '': passport = line else: passport += ' ' + line else: passport_obj = _create_passport_obj(passport) passports.append(passport_obj) passport = '' passport_obj = _create_passport_obj(passport) passports.append(passport_obj) return passports
def anyone_answered_yes(input_file): group_answers = [] lines = get_input_as_strings(input_file) answers = '' for line in lines: if line != '': if answers == '': answers = line else: answers += line else: group_answers.append(set(answers)) answers = '' group_answers.append(set(answers)) count = 0 for a in group_answers: count += len(a) return count
def _get_seat_coordinates(input_file): lines = get_input_as_strings(input_file) coordinates = [] for line in lines: row = line[:7] col = line[-3:] seat = PlaneSeat(string=row, lower='F', upper='B', minimum=0, maximum=128) row_num = math.trunc(seat.get_position()) seat = PlaneSeat(string=col, lower='L', upper='R', minimum=0, maximum=8) col_num = math.trunc(seat.get_position()) coordinates.append((row_num, col_num)) coordinates.sort(key=lambda tup: (tup[0], tup[1])) return coordinates
def _create_grid_with_values(input_file): grid = [] lines = get_input_as_strings(input_file) for line in lines: grid.append(line) return grid
def _parse_input(input_file): lines = get_input_as_strings(input_file) parsed_lines = [] for line in lines: parsed_lines.append(line) return parsed_lines