more cleaning
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
with open(r'advent_of_code\2022\03\input.txt', 'r') as file:
|
||||
input = file.read()
|
||||
|
||||
test_input = '''vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw'''
|
||||
|
||||
def task_1(file):
|
||||
# Iterate over rucksacks, separate each in half and find out the priority of the common item between both halves
|
||||
# using ASCII
|
||||
priority = 0
|
||||
for line in file.split('\n'):
|
||||
middle_index = int(len(line) / 2)
|
||||
common_items_set = set(line[:middle_index]).intersection(line[middle_index:])
|
||||
common_item = common_items_set.pop()
|
||||
ascii_start = 96 if common_item.islower() else 38
|
||||
priority += ord(common_item) - ascii_start
|
||||
print("Task 1 result: " + str(priority))
|
||||
task_1(input)
|
||||
@@ -0,0 +1,37 @@
|
||||
with open(r'D:\repos\advent_of_code\2022\03\input.txt', 'r') as file:
|
||||
input = file.read()
|
||||
|
||||
test_input = '''vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw'''
|
||||
|
||||
def task_1(file):
|
||||
# Iterate over rucksacks, separate each in half and find out the priority of the common item between both halves
|
||||
# using ASCII
|
||||
priority = 0
|
||||
for line in file.split('\n'):
|
||||
middle_index = int(len(line) / 2)
|
||||
common_items_set = set(line[:middle_index]).intersection(line[middle_index:])
|
||||
common_item = common_items_set.pop()
|
||||
ascii_start = 96 if common_item.islower() else 38
|
||||
priority += ord(common_item) - ascii_start
|
||||
print("Task 1 result: " + str(priority))
|
||||
task_1(input)
|
||||
|
||||
def task_2(file):
|
||||
# group 3 lines together, find the common item between all 3 lines
|
||||
# using ASCII
|
||||
priority = 0
|
||||
#take the input and split it into groups of 3 lines
|
||||
lines = file.split('\n')
|
||||
grouped_lines = [lines[i:i + 3] for i in range(0, len(lines), 3)]
|
||||
for group in grouped_lines:
|
||||
common_items_set = set(group[0]).intersection(group[1], group[2])
|
||||
common_item = common_items_set.pop()
|
||||
ascii_start = 96 if common_item.islower() else 38
|
||||
priority += ord(common_item) - ascii_start
|
||||
print("Task 2 result: " + str(priority))
|
||||
task_2(input)
|
||||
Reference in New Issue
Block a user