day06
This commit is contained in:
parent
680954aab4
commit
1859239c36
52
day05/day.go
Normal file
52
day05/day.go
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package day05
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/md5"
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
"tools"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Part1(puzzle tools.AoCPuzzle) interface{} {
|
||||||
|
doorId := puzzle.GetInputArray()[0]
|
||||||
|
password := ""
|
||||||
|
i := 0
|
||||||
|
|
||||||
|
for {
|
||||||
|
chk := doorId + strconv.Itoa(i)
|
||||||
|
chksum := fmt.Sprintf("%x", md5.Sum([]byte(chk)))
|
||||||
|
if chksum[0:5] == "00000" {
|
||||||
|
password += string(chksum[5])
|
||||||
|
}
|
||||||
|
if len(password) == 8 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
|
||||||
|
return password
|
||||||
|
}
|
||||||
|
|
||||||
|
func Part2(puzzle tools.AoCPuzzle) interface{} {
|
||||||
|
doorId := puzzle.GetInputArray()[0]
|
||||||
|
password := make([]byte, 8)
|
||||||
|
i := 0
|
||||||
|
cCount := 0
|
||||||
|
|
||||||
|
for {
|
||||||
|
chk := doorId + strconv.Itoa(i)
|
||||||
|
chksum := fmt.Sprintf("%x", md5.Sum([]byte(chk)))
|
||||||
|
if chksum[0:5] == "00000" {
|
||||||
|
if chksum[5] >= '0' && chksum[5] <= '7' && password[chksum[5]-48] == 0 {
|
||||||
|
password[chksum[5]-48] = chksum[6]
|
||||||
|
cCount++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if cCount == 8 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
|
||||||
|
return string(password)
|
||||||
|
}
|
||||||
1
inputs/5_test
Normal file
1
inputs/5_test
Normal file
@ -0,0 +1 @@
|
|||||||
|
abc
|
||||||
7
main.go
7
main.go
@ -5,6 +5,7 @@ import (
|
|||||||
"aoc2016/day02"
|
"aoc2016/day02"
|
||||||
"aoc2016/day03"
|
"aoc2016/day03"
|
||||||
"aoc2016/day04"
|
"aoc2016/day04"
|
||||||
|
"aoc2016/day05"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
@ -26,7 +27,7 @@ func initDayFunctions() {
|
|||||||
2: {1: day02.Part1, 2: day02.Part2},
|
2: {1: day02.Part1, 2: day02.Part2},
|
||||||
3: {1: day03.Part1, 2: day03.Part2},
|
3: {1: day03.Part1, 2: day03.Part2},
|
||||||
4: {1: day04.Part1, 2: day04.Part2},
|
4: {1: day04.Part1, 2: day04.Part2},
|
||||||
// 5: {1: day05.Part1, 2: day05.Part2},
|
5: {1: day05.Part1, 2: day05.Part2},
|
||||||
// 6: {1: day06.Part1, 2: day06.Part2},
|
// 6: {1: day06.Part1, 2: day06.Part2},
|
||||||
// 7: {1: day07.Part1, 2: day07.Part2},
|
// 7: {1: day07.Part1, 2: day07.Part2},
|
||||||
// 8: {1: day08.Part1, 2: day08.Part2},
|
// 8: {1: day08.Part1, 2: day08.Part2},
|
||||||
@ -43,6 +44,10 @@ func initDayFunctions() {
|
|||||||
// 19: {1: day19.Part1, 2: day19.Part2},
|
// 19: {1: day19.Part1, 2: day19.Part2},
|
||||||
// 20: {1: day20.Part1, 2: day20.Part2},
|
// 20: {1: day20.Part1, 2: day20.Part2},
|
||||||
// 21: {1: day21.Part1, 2: day21.Part2},
|
// 21: {1: day21.Part1, 2: day21.Part2},
|
||||||
|
// 22: {1: day22.Part1, 2: day22.Part2},
|
||||||
|
// 23: {1: day23.Part1, 2: day23.Part2},
|
||||||
|
// 24: {1: day24.Part1, 2: day24.Part2},
|
||||||
|
// 25: {1: day25.Part1, 2: day25.Part2},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user