solve_1.go 888 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package main
  2. import (
  3. "bufio"
  4. "fmt"
  5. "log"
  6. "os"
  7. "strconv"
  8. )
  9. func main() {
  10. fmt.Println("Advent of Code 2025 - Day 1 - Part 1")
  11. nb_occ_zero := 0
  12. lock_num := 50
  13. direction := 1
  14. var nb_ticks int
  15. var instruction string
  16. f, err := os.Open("1/input")
  17. if err != nil {
  18. log.Fatal(err)
  19. }
  20. defer f.Close()
  21. scanner := bufio.NewScanner(f)
  22. // We read input line by line
  23. for scanner.Scan() {
  24. instruction = scanner.Text()
  25. switch instruction[0] {
  26. case 'L':
  27. direction = -1
  28. case 'R':
  29. direction = 1
  30. default:
  31. panic("unrecognized instruction")
  32. }
  33. nb_ticks, err = strconv.Atoi(instruction[1:])
  34. if err != nil {
  35. log.Fatal(err)
  36. }
  37. lock_num = (lock_num + direction*nb_ticks) % 100
  38. if lock_num < 0 {
  39. lock_num = lock_num + 100
  40. }
  41. if lock_num == 0 {
  42. nb_occ_zero++
  43. }
  44. }
  45. if err = scanner.Err(); err != nil {
  46. log.Fatal(err)
  47. }
  48. fmt.Println(nb_occ_zero)
  49. }