day15.go 705 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "log"
  6. "os"
  7. "strings"
  8. )
  9. var rounds map[int]int
  10. var numbersSpoken map[int][]int
  11. func readFile(filePath string) {
  12. content, err := ioutil.ReadFile(filePath)
  13. if err != nil {
  14. log.Fatal(err)
  15. }
  16. for i, item := range strings.Split(string(content), ",") {
  17. var number int
  18. n, err := fmt.Sscanf(item, "%d", &number)
  19. if err != nil || n < 1 {
  20. log.Fatal(err)
  21. }
  22. rounds[i+1] = number
  23. numbersSpoken[number] = []int{i + 1}
  24. }
  25. }
  26. func init() {
  27. rounds = make(map[int]int)
  28. numbersSpoken = make(map[int][]int)
  29. }
  30. func main() {
  31. if len(os.Args) < 2 {
  32. log.Fatal("You need to specify a file!")
  33. }
  34. readFile(os.Args[1])
  35. fmt.Println(numbersSpoken, rounds)
  36. }