aoc2015/day04/day04.go
2020-12-26 10:26:29 +01:00

39 lines
712 B
Go

package day04
import (
"crypto/md5"
"encoding/hex"
tools "shtools"
"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 tools.Puzzle) interface{} {
secretStart := puzzle.GetInputArray()[0]
return findMd5SumStartsWith(secretStart, "00000")
}
func Part2(puzzle tools.Puzzle) interface{} {
secretStart := puzzle.GetInputArray()[0]
return findMd5SumStartsWith(secretStart, "000000")
}