Untitled
unknown
python
2 months ago
1.4 kB
3
Indexable
def get_mid(update): return update[int((len(update)-1)/2)] def respect_rules(rules, parsed_nums, update_num): for rule in rules: if rule[0] == update_num and rule[1] in parsed_nums: return False return True def valid_update(rules, update): parsed_nums = [] for update_num in update: index = len(parsed_nums) for rule in rules: if rule[0] == update_num and rule[1] in parsed_nums: index = min(parsed_nums.index(rule[1]), index) parsed_nums.insert(index,update_num) return parsed_nums with open("day05 input.txt", 'r') as f: content = f.read() rules_string, updates_string = content.split('\n\n') rules = list() for rule in rules_string.split(): rule_split = rule.split('|') rules.append((int(rule_split[0]), int(rule_split[1]))) updates = list() for update in updates_string.split(): update_split = update.split(',') updates.append(tuple(map(int,update_split))) valid_update(rules, updates[5]) soma_mids_ordenados = 0 soma_mids = 0 for update in updates: update_list = list(update) validado = valid_update(rules,update_list) if validado != update_list: soma_mids_ordenados += get_mid(validado) else: soma_mids += get_mid(update) print('parte 1:', soma_mids) print('parte 2:',soma_mids_ordenados)
Editor is loading...
Leave a Comment