Part 1 day 5 at least so far ;-;
This commit is contained in:
		
							parent
							
								
									431c304645
								
							
						
					
					
						commit
						9fac5539f0
					
				
							
								
								
									
										47
									
								
								5/1.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								5/1.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,47 @@ | ||||
| def mid(values: list[str]): | ||||
|     return values[len(values)//2] | ||||
| 
 | ||||
| rules,updates = {}, [] | ||||
| with open('sample.data') as data: | ||||
|     for line in data: | ||||
|         if '|' in line: | ||||
|             left, right  = [int(i) for i in line.split('|')] | ||||
|             if left in rules: | ||||
|                 rules[left].append(right) | ||||
|             else: | ||||
|                 rules[left] = [right] | ||||
|         if ',' in line: | ||||
|             updates.append([int(i) for i in line.split(',')]) | ||||
| 
 | ||||
| def sort_updates(rules: dict[int, list[int]], updates: list) -> [list[int], list[int]]: | ||||
|     correct, incorrect = [], [] | ||||
|     for update in updates: | ||||
|         for idx, val in enumerate(update): | ||||
|             fail = False | ||||
|             for after in update[idx:]: | ||||
|                 if after == val: | ||||
|                     continue | ||||
|                 try: | ||||
|                     if after not in rules[val]: | ||||
|                         fail = True | ||||
|                         incorrect.append(update) | ||||
|                         break | ||||
|                 except KeyError: | ||||
|                     fail = True | ||||
|                     incorrect.append(update) | ||||
|                     break | ||||
|             if fail: | ||||
|                 break | ||||
|         else: | ||||
|             # 75,47,61,53,29 | ||||
|             # 97,61,53,29,13 | ||||
|             # 75,29,13 | ||||
|             print('good', update) | ||||
|             correct.append(mid(update)) | ||||
|     return correct, incorrect | ||||
| 
 | ||||
| correct, incorrect = sort_updates(rules, updates) | ||||
| print('COrrect', sum(correct)) | ||||
| print('incorrect', *incorrect) | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										17
									
								
								5/2.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								5/2.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| def mid(values: list[str]): | ||||
|     return values[len(values)//2] | ||||
| 
 | ||||
| rules,updates = {}, [] | ||||
| with open('sample.data') as data: | ||||
|     for line in data: | ||||
|         if '|' in line: | ||||
|             left, right  = [int(i) for i in line.split('|')] | ||||
|             if left in rules: | ||||
|                 rules[left].append(right) | ||||
|             else: | ||||
|                 rules[left] = [right] | ||||
|         if ',' in line: | ||||
|             updates.append([int(i) for i in line.split(',')]) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										1387
									
								
								5/input.data
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1387
									
								
								5/input.data
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										28
									
								
								5/sample.data
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								5/sample.data
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| 47|53 | ||||
| 97|13 | ||||
| 97|61 | ||||
| 97|47 | ||||
| 75|29 | ||||
| 61|13 | ||||
| 75|53 | ||||
| 29|13 | ||||
| 97|29 | ||||
| 53|29 | ||||
| 61|53 | ||||
| 97|53 | ||||
| 61|29 | ||||
| 47|13 | ||||
| 75|47 | ||||
| 97|75 | ||||
| 47|61 | ||||
| 75|61 | ||||
| 47|29 | ||||
| 75|13 | ||||
| 53|13 | ||||
| 
 | ||||
| 75,47,61,53,29 | ||||
| 97,61,53,29,13 | ||||
| 75,29,13 | ||||
| 75,97,47,61,53 | ||||
| 61,13,29 | ||||
| 97,13,75,29,47 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user