This commit is contained in:
Stefan Harmuth 2020-12-22 09:50:45 +01:00
parent aff0fbe573
commit 21cd974566
4 changed files with 44 additions and 0 deletions

38
day04/day04.go Normal file
View File

@ -0,0 +1,38 @@
package day04
import (
"aoc2015/aoclib"
"crypto/md5"
"encoding/hex"
"strconv"
"strings"
)
func findMd5SumStartsWith(secretStart string, start string) int {
var secret string
var md5sum [16]byte
counter := 0
for true {
secret = secretStart + strconv.Itoa(counter)
md5sum = md5.Sum([]byte(secret))
if strings.HasPrefix(hex.EncodeToString(md5sum[:]), start) {
return counter
}
counter++
}
return -1
}
func Part1(puzzle aoclib.Puzzle) interface{} {
secretStart := puzzle.GetInputArray()[0]
return findMd5SumStartsWith(secretStart, "00000")
}
func Part2(puzzle aoclib.Puzzle) interface{} {
secretStart := puzzle.GetInputArray()[0]
return findMd5SumStartsWith(secretStart, "000000")
}

1
inputs/4 Normal file
View File

@ -0,0 +1 @@
bgvyzdsv

1
inputs/4_test Normal file
View File

@ -0,0 +1 @@
abcdef

View File

@ -5,6 +5,7 @@ import (
"aoc2015/day01"
"aoc2015/day02"
"aoc2015/day03"
"aoc2015/day04"
"flag"
"fmt"
"os"
@ -30,6 +31,9 @@ func initDayFunctions() {
dayFunctions[3] = make(map[int]func(puzzle aoclib.Puzzle) interface{})
dayFunctions[3][1] = day03.Part1
dayFunctions[3][2] = day03.Part2
dayFunctions[4] = make(map[int]func(puzzle aoclib.Puzzle) interface{})
dayFunctions[4][1] = day04.Part1
dayFunctions[4][2] = day04.Part2
}
func execute(thisDay int) {