You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
2 years ago
|
# Part 1
|
||
|
with open("input.txt") as f:
|
||
|
lines = map(lambda l: l.strip(), f.readlines())
|
||
|
depth = 0
|
||
|
horizontal = 0
|
||
|
for line in lines:
|
||
|
command = line.split(" ")[0]
|
||
|
amount = int(line.split(" ")[1])
|
||
|
|
||
|
if command == "forward":
|
||
|
horizontal += amount
|
||
|
elif command == "down":
|
||
|
depth += amount
|
||
|
elif command == "up":
|
||
|
depth -= amount
|
||
|
|
||
|
print("Part 1:")
|
||
|
print(f"Horizontal Position: {horizontal}, Depth: {depth}")
|
||
|
print(f"Product: {horizontal * depth}")
|
||
|
|
||
|
# Part 2
|
||
|
with open("input.txt") as f:
|
||
|
lines = map(lambda l: l.strip(), f.readlines())
|
||
|
aim = 0
|
||
|
depth = 0
|
||
|
horizontal = 0
|
||
|
for line in lines:
|
||
|
command = line.split(" ")[0]
|
||
|
amount = int(line.split(" ")[1])
|
||
|
|
||
|
if command == "forward":
|
||
|
horizontal += amount
|
||
|
depth += amount * aim
|
||
|
elif command == "down":
|
||
|
aim += amount
|
||
|
elif command == "up":
|
||
|
aim -= amount
|
||
|
|
||
|
print("Part 2:")
|
||
|
print(f"Horizontal Position: {horizontal}, Depth: {depth}")
|
||
|
print(f"Product: {horizontal * depth}")
|