Files
AdventOfCode/2019/day_04/day_04.go
2019-12-04 17:30:55 +01:00

49 lines
718 B
Go

package main
import "fmt"
const (
min = 130254
max = 678275
)
func intToSlice(n int) []int {
s := make([]int, 0)
for n != 0 {
r := n % 10
n = n / 10
s = append([]int{r}, s...)
}
return s
}
func twoEqualAdjacentDigits(pwd []int) bool {
for i, digit := range pwd {
if i < len(pwd)-1 && digit == pwd[i+1] {
return true
}
}
return false
}
func increasingDigits(pwd []int) bool {
for i, digit := range pwd {
if i < len(pwd)-1 && digit > pwd[i+1] {
return false
}
}
return true
}
func main() {
// Part 1:
count := 0
for i := min; i < max; i++ {
pwd := intToSlice(i)
if twoEqualAdjacentDigits(pwd) && increasingDigits(pwd) {
count++
}
}
fmt.Printf("Part 1: %d\n", count)
}