Update 2015 solutions

This commit is contained in:
2024-10-20 15:19:25 -04:00
parent 87ab42743e
commit e73fa3bae7
16 changed files with 362 additions and 411 deletions

View File

@@ -1,4 +1,7 @@
data = open(0).read().strip()
from lib import get_data
data = get_data(__file__).strip()
def is_valid(pw):
# Passwords must include one increasing straight of at least three letters,
@@ -26,24 +29,26 @@ def is_valid(pw):
return False
return True
def inc(pw):
pw = list(map(ord, pw))
for i in range(len(pw) - 1, -1, -1):
pw[i] += 1
if pw[i] == ord('z') + 1:
pw[i] = ord('a')
if pw[i] == ord("z") + 1:
pw[i] = ord("a")
else:
break
return "".join(map(chr, pw))
part_1 = False
part_1 = True
valid_count = 0
while True:
data = inc(data)
if is_valid(data):
valid_count += 1
if part_1 and valid_count == 1:
break
elif valid_count == 2:
break
print(data)
if part_1 and valid_count == 1:
print(data)
elif valid_count == 2:
print(data)
break