solve day 6 part 2
This commit is contained in:
31
6/tuningtrouble.py
Normal file
31
6/tuningtrouble.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from itertools import count
|
||||
|
||||
from aocd.models import Puzzle
|
||||
from aocd import submit
|
||||
|
||||
|
||||
def get_marker_pos(signal, N):
|
||||
"""
|
||||
iterate over input stream and find all the first occurence
|
||||
where the Set from i to i+N equals N. This means there are
|
||||
no duplicates within this particular range.
|
||||
"""
|
||||
for i in count():
|
||||
if len(set(signal[i : i + N])) == N:
|
||||
return i + N
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# get puzzle and parse data
|
||||
puzzle = Puzzle(year=2022, day=6)
|
||||
signal = puzzle.input_data
|
||||
|
||||
# part a:
|
||||
answer_a = get_marker_pos(signal, 4)
|
||||
print(f"{answer_a}")
|
||||
submit(answer_a, part="a", day=6, year=2022)
|
||||
|
||||
# part b:
|
||||
answer_b = get_marker_pos(signal, 14)
|
||||
print(f"{answer_b}")
|
||||
submit(answer_b, part="b", day=6, year=2022)
|
||||
Reference in New Issue
Block a user