first commit
This commit is contained in:
1000
02/input.txt
Normal file
1000
02/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
6
02/input_sample.txt
Normal file
6
02/input_sample.txt
Normal file
@ -0,0 +1,6 @@
|
||||
7 6 4 2 1
|
||||
1 2 7 8 9
|
||||
9 7 6 2 1
|
||||
1 3 2 4 5
|
||||
8 6 4 4 1
|
||||
1 3 6 7 9
|
||||
30
02/solve_part1.py
Executable file
30
02/solve_part1.py
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
def read_input(filename):
|
||||
with open(filename) as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
yield line.split(" ")
|
||||
|
||||
def main(args):
|
||||
safe_count = 0
|
||||
for levels in read_input("input.txt"):
|
||||
tmp = [ (int(levels[i-1]) - int(levels[i])) for i in range(1,len(levels))]
|
||||
tmp2 = [ abs(x) for x in tmp]
|
||||
if (abs(sum(tmp)) != sum(tmp2)):
|
||||
continue
|
||||
tmp3 = [x for x in tmp2 if x in [1,2,3]]
|
||||
if len(tmp3) != len(tmp2):
|
||||
continue
|
||||
safe_count += 1
|
||||
print(safe_count)
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog='AdventOfCode 2024, Day 02, part 1',
|
||||
)
|
||||
parser.add_argument('-f', '--file', required=True)
|
||||
args = parser.parse_args()
|
||||
main(args)
|
||||
40
02/solve_part2.py
Executable file
40
02/solve_part2.py
Executable file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
def read_input(filename):
|
||||
with open(filename) as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
yield line.split(" ")
|
||||
|
||||
def is_safe(levels):
|
||||
tmp = [ (int(levels[i-1]) - int(levels[i])) for i in range(1,len(levels))]
|
||||
tmp2 = [ abs(x) for x in tmp]
|
||||
if (abs(sum(tmp)) != sum(tmp2)):
|
||||
return False
|
||||
tmp3 = [x for x in tmp2 if x in [1,2,3]]
|
||||
if len(tmp3) != len(tmp2):
|
||||
return False
|
||||
return True
|
||||
|
||||
def main(args):
|
||||
safe_count = 0
|
||||
for levels in read_input(args.file):
|
||||
if (is_safe(levels)):
|
||||
safe_count += 1
|
||||
continue
|
||||
for i in range(len(levels)):
|
||||
tmp2 = levels[:i] + levels[i+1 :]
|
||||
if is_safe(tmp2):
|
||||
safe_count += 1
|
||||
break
|
||||
print(safe_count)
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog='AdventOfCode 2024, Day 02, part 2',
|
||||
)
|
||||
parser.add_argument('-f', '--file', required=True)
|
||||
args = parser.parse_args()
|
||||
main(args)
|
||||
Reference in New Issue
Block a user