Day 2 part 1
This commit is contained in:
parent
c3f708cda2
commit
1d9b8196d9
3
main.go
3
main.go
@ -8,4 +8,7 @@ import (
|
||||
func main() {
|
||||
fmt.Println("Day 01 part 1:\t", solutions.Day01Part01(false))
|
||||
fmt.Println("Day 01 part 2:\t", solutions.Day01Part02(false))
|
||||
|
||||
fmt.Println("Day 02 part 1:\t", solutions.Day02Part01(false))
|
||||
fmt.Println("Day 02 part 2:\t", solutions.Day02Part02(false))
|
||||
}
|
||||
|
60
solutions/day02.go
Normal file
60
solutions/day02.go
Normal file
@ -0,0 +1,60 @@
|
||||
package solutions
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func checkPassword(input string) bool {
|
||||
dashPosition := strings.Index(input, "-")
|
||||
spacePosition := strings.Index(input, " ")
|
||||
colonPosition := strings.Index(input, ":")
|
||||
|
||||
amountMin, err := strconv.Atoi(input[:dashPosition])
|
||||
if err != nil {
|
||||
panic("Error converting to int")
|
||||
}
|
||||
amountMax, err := strconv.Atoi(input[dashPosition+1 : spacePosition])
|
||||
if err != nil {
|
||||
panic("Error converting to int")
|
||||
}
|
||||
|
||||
letter := input[spacePosition+1 : colonPosition]
|
||||
rest := input[colonPosition+2:]
|
||||
|
||||
charMap := make(map[string]int)
|
||||
|
||||
for _, char := range strings.Split(rest, "") {
|
||||
if _, ok := charMap[char]; ok {
|
||||
charMap[char] += 1
|
||||
} else {
|
||||
charMap[char] = 1
|
||||
}
|
||||
}
|
||||
|
||||
charAmount := charMap[letter]
|
||||
|
||||
if charAmount >= amountMin && charAmount <= amountMax {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func Day02Part01(isTest bool) int {
|
||||
input := ReadInput("02", isTest)
|
||||
values := strings.Split(input, "\n")
|
||||
correctPasswords := 0
|
||||
|
||||
for _, i := range values {
|
||||
if checkPassword(i) {
|
||||
correctPasswords += 1
|
||||
}
|
||||
}
|
||||
|
||||
return correctPasswords
|
||||
}
|
||||
|
||||
func Day02Part02(isTest bool) int {
|
||||
return -1
|
||||
}
|
Loading…
Reference in New Issue
Block a user