Day 6, part 2 efficient in time
This commit is contained in:
1 parent
9a176b9d42
commit
0b66c3c2af
3 files changed
+102
No files matched your search
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys, re
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
lines = [line.strip('\n') for line in open(sys.argv[1])]
|
||||
times = [int(n) for n in re.findall(r'\d+', lines[0])]
|
||||
records = [int(n) for n in re.findall(r'\d+', lines[1])]
|
||||
|
||||
# challenge 1
|
||||
res1 = 1
|
||||
for i in range(len(times)):
|
||||
count = 0
|
||||
for t in range(times[i]):
|
||||
if t * (times[i] - t) > records[i]: count += 1
|
||||
res1 *= count
|
||||
|
||||
res1 = str(res1)
|
||||
print(f"challenge 1:\n{res1}\n")
|
||||
|
||||
# challenge 2
|
||||
time = int(''.join([str(i) for i in times]))
|
||||
record = int(''.join([str(i) for i in records]))
|
||||
res2 = 0
|
||||
for t in range(time):
|
||||
if t * (time - t) > record:
|
||||
mint = t
|
||||
break
|
||||
res2 = str(time - 2 * mint + 1)
|
||||
print(f"challenge 2:\n{res2}\n")
|
||||
|
||||
Reference in new issue
Block a user