diff --git a/day-06/day-06.py b/day-06/day-06.py index ceeecd1..cbd01b1 100644 --- a/day-06/day-06.py +++ b/day-06/day-06.py @@ -3,40 +3,26 @@ from pathlib import Path def part_1(input): - result = 0 - numbers = input[0].split(',') - numbers = [int(n) for n in numbers] - for i in range(80): - new_numbers = [] - new = 0 - for n in numbers: - if n > 0: - n -= 1 - else: - n = 6 - new += 1 - new_numbers.append(n) - new_numbers += [8 for x in range(new)] - numbers = new_numbers - result = len(numbers) + numbers = [int(n) for n in input[0].split(',')] + count = [len([x for x in numbers if x == i]) for i in range(9)] + for _ in range(80): + tmp = count[0] + count = [count[i+1] for i in range(8)] + count[6] += tmp + count[8] = tmp + result = sum(count) print("Part 1 result:", result) def part_2(input): - result = 0 - numbers = input[0].split(',') - numbers = [int(n) for n in numbers] - count = [0] * 9 - for i in range(9): - count[i] = len([x for x in numbers if x == i]) - for i in range(256): + numbers = [int(n) for n in input[0].split(',')] + count = [len([x for x in numbers if x == i]) for i in range(9)] + for _ in range(256): tmp = count[0] - for j in range(8): - count[j] = count[j+1] - count[8] = tmp + count = [count[i+1] for i in range(8)] count[6] += tmp - for c in count: - result += c + count[8] = tmp + result = sum(count) print("Part 2 result:", result)