Bladeren bron

Solve 2022 day 6

Jonatan Gezelius 3 jaren geleden
bovenliggende
commit
4d6b8a956d
3 gewijzigde bestanden met toevoegingen van 46 en 0 verwijderingen
  1. 41 0
      2022/06/aAndB.py
  2. 5 0
      2022/06/example.txt
  3. 0 0
      2022/06/infile.txt

+ 41 - 0
2022/06/aAndB.py

@@ -0,0 +1,41 @@
+import os, argparse
+
+def get_marker_index(line, window_length):
+    marker_window = []
+    for i in range(len(line)):
+        c = line[i]
+        marker_window.append(c)
+        if len(marker_window)>=window_length:
+            if only_uniques(marker_window):
+                return i+1
+            del marker_window[0]
+
+def only_uniques(list):
+    return len(list) == len(set(list))
+
+def solve_task(lines):
+    for line in lines:
+        print(f"First task: {get_marker_index(line, 4)}")
+        print(f"Second task: {get_marker_index(line, 14)}")
+
+def read_lines(filename):
+    lines = []
+    with open(filename) as infile:
+        for raw_line in infile:
+            line = raw_line.rstrip()
+            lines.append(line)
+    return lines
+
+def parse_arguments():
+    parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
+    parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
+    args = parser.parse_args()
+    return args
+
+def main():
+    args = parse_arguments()
+    lines = read_lines(args.filename)
+    solve_task(lines)
+
+if __name__ == "__main__":
+    main()

+ 5 - 0
2022/06/example.txt

@@ -0,0 +1,5 @@
+mjqjpqmgbljsphdztnvjfqwrcgsmlb
+bvwbjplbgvbhsrlpgdmjqwftvncz
+nppdvjthqldpwncqszvftbrmjlhg
+nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg
+zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw

File diff suppressed because it is too large
+ 0 - 0
2022/06/infile.txt


Some files were not shown because too many files changed in this diff