[py] Port 2015_04

This commit is contained in:
Joscha 2022-12-06 20:09:41 +01:00
parent 3b7bf7340f
commit 0a6b2fc133
3 changed files with 31 additions and 34 deletions

View file

@ -1,33 +0,0 @@
import hashlib
# PART 1
def leading_zeroes(amount, start):
n = 1
what = "0"*amount
while True:
text = (start + str(n)).encode("utf-8")
h = hashlib.md5(text).hexdigest()
if h[:amount] == what:
return n
if n % 100000 == 0:
print(f"{n:9} {text} {h}")
n += 1
# PART 2
def main(hashstart):
print("Previously calculated:")
print("Part 1: 282749")
print("Part 2: 9962624")
print()
print(f"Solutions")
n = leading_zeroes(5, hashstart)
print(f"Part 1: {n}")
n_2 = leading_zeroes(6, hashstart)
print(f"Part 2: {n_2}")
if __name__ == "__main__":
main("yzbqklnj")

View file

@ -2,7 +2,7 @@ import sys
import argparse import argparse
from pathlib import Path from pathlib import Path
from .y2015 import d01, d02, d03 from .y2015 import d01, d02, d03, d04
from .y2016 import d01, d02, d03, d04, d05 from .y2016 import d01, d02, d03, d04, d05
from .y2017 import d01, d02, d03, d04, d05, d06, d07, d08, d09 from .y2017 import d01, d02, d03, d04, d05, d06, d07, d08, d09
from .y2018 import d01, d02, d03, d04, d05, d06, d07, d08, d09, d10, d11 from .y2018 import d01, d02, d03, d04, d05, d06, d07, d08, d09, d10, d11
@ -14,6 +14,7 @@ DAYS = {
"2015_01": y2015.d01.solve, "2015_01": y2015.d01.solve,
"2015_02": y2015.d02.solve, "2015_02": y2015.d02.solve,
"2015_03": y2015.d03.solve, "2015_03": y2015.d03.solve,
"2015_04": y2015.d04.solve,
"2016_01": y2016.d01.solve, "2016_01": y2016.d01.solve,
"2016_02": y2016.d02.solve, "2016_02": y2016.d02.solve,
"2016_03": y2016.d03.solve, "2016_03": y2016.d03.solve,

29
py/aoc/y2015/d04.py Normal file
View file

@ -0,0 +1,29 @@
import hashlib
# PART 1
def leading_zeroes(amount, start):
n = 1
what = "0" * amount
while True:
text = (start + str(n)).encode("utf-8")
h = hashlib.md5(text).hexdigest()
if h[:amount] == what:
return n
# if n % 100000 == 0:
# print(f"{n:9} {text} {h}")
n += 1
# PART 2
def solve(inputstr):
hashstart = inputstr.strip()
n = leading_zeroes(5, hashstart)
print(f"Part 1: {n}")
n_2 = leading_zeroes(6, hashstart)
print(f"Part 2: {n_2}")