2023 Day 5 (P1 only)

This commit is contained in:
2023-12-10 20:39:04 +00:00
parent 520e04c53f
commit 2eef455f9d

44
2023/Day-05/day05-1.py Executable file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/python3
def main():
seeds = []
ranges = {}
with open('input.txt', 'r') as input_file:
line = input_file.readline().strip()
while line != '':
if line.startswith('seeds:'):
seeds = [int(seed) for seed in line.split(':')[1].split()]
input_file.readline()
line = input_file.readline().strip()
else:
map = line.split()[0]
ranges[map] = {}
line = input_file.readline().strip()
while line != '':
digits = [int(num) for num in line.split()]
dest_range = range(digits[0], digits[0] + digits[2])
source_range = range(digits[1], digits[1] + digits[2])
ranges[map][source_range] = dest_range
line = input_file.readline().strip()
line = input_file.readline().strip()
locations = []
for seed in seeds:
next_val = seed
for map in ranges:
for source in ranges[map]:
if next_val in source:
difference = source.start - ranges[map][source].start
next_val = next_val - difference
break
else:
next_val = next_val
locations.append(next_val)
print(min(locations))
if __name__ == '__main__':
main()