summaryrefslogtreecommitdiff
path: root/03/main.py
diff options
context:
space:
mode:
Diffstat (limited to '03/main.py')
-rwxr-xr-x03/main.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/03/main.py b/03/main.py
new file mode 100755
index 0000000..35c2308
--- /dev/null
+++ b/03/main.py
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+
+
+
+def get_path(data):
+ visited = []
+ loc = (0, 0)
+ visited.append(loc)
+
+ for d in data:
+ if d == "^":
+ loc = (loc[0], loc[1] + 1)
+ elif d == "v":
+ loc = (loc[0], loc[1] - 1)
+ elif d == "<":
+ loc = (loc[0] - 1, loc[1])
+ elif d == ">":
+ loc = (loc[0] + 1, loc[1])
+ visited.append(loc)
+
+ return visited
+
+
+
+def solve_part1(data):
+ return len([*set(get_path(data))])
+
+
+
+def solve_part2(data):
+ data1 = data[0::2]
+ data2 = data[1::2]
+ return len([*set(get_path(data1) + get_path(data2))])
+
+
+
+def main():
+ # Read delivery instructions from input text file
+ with open("input.txt", "r") as f:
+ data = f.read()
+
+ print("Part 1 solution:", solve_part1(data)) # 2592 for me
+ print("Part 2 solution:", solve_part2(data)) # 2360 for me
+
+
+
+if __name__ == "__main__":
+ main()