[py] Port 2015_04
This commit is contained in:
parent
3b7bf7340f
commit
0a6b2fc133
3 changed files with 31 additions and 34 deletions
|
|
@ -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")
|
|
||||||
|
|
@ -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
29
py/aoc/y2015/d04.py
Normal 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}")
|
||||||
Loading…
Add table
Add a link
Reference in a new issue