|
@@ -58,6 +58,27 @@ func readInput(file *os.File) ([][]int, [][]int) {
|
|
|
return locks, keys
|
|
|
}
|
|
|
|
|
|
+func countMatches(locks, keys [][]int) int {
|
|
|
+ var count int
|
|
|
+ for _, lock := range locks {
|
|
|
+ for _, key := range keys {
|
|
|
+ fits := true
|
|
|
+ for i := range lock {
|
|
|
+ if lock[i]+key[i] > 5 {
|
|
|
+ fits = false
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if fits {
|
|
|
+ count++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return count
|
|
|
+}
|
|
|
+
|
|
|
func main() {
|
|
|
if len(os.Args) < 2 {
|
|
|
log.Fatal("You need to specify a file!")
|
|
@@ -70,5 +91,5 @@ func main() {
|
|
|
}
|
|
|
|
|
|
locks, keys := readInput(file)
|
|
|
- fmt.Println(locks, keys)
|
|
|
+ fmt.Println("Part1:", countMatches(locks, keys))
|
|
|
}
|