Selaa lähdekoodia

first part day 1

Abderrahmane Faiz 3 viikkoa sitten
vanhempi
commit
7841d4fe04
2 muutettua tiedostoa jossa 55 lisäystä ja 1 poistoa
  1. 54 0
      1/solve_1.go
  2. 1 1
      README.md

+ 54 - 0
1/solve_1.go

@@ -0,0 +1,54 @@
+package main
+
+import (
+	"bufio"
+	"fmt"
+	"log"
+	"os"
+	"strconv"
+)
+
+
+func main()  {
+	nb_occ_zero  := 0
+	lock_num := 50
+	direction := 1
+	var nb_ticks int;
+	var instruction string 
+	f, err := os.Open("1/input")
+	if err != nil{
+		log.Fatal(err)
+	}
+	defer f.Close()
+	scanner := bufio.NewScanner(f)
+
+	// We read input line by line
+	for scanner.Scan(){
+		instruction = scanner.Text()
+		switch (instruction[0]){
+			case 'L':
+			direction = -1
+			case 'R':
+			direction = 1
+			default:
+			panic("unrecognized instruction")
+		}
+		nb_ticks, err = strconv.Atoi(instruction[1:])
+		if err != nil{
+			log.Fatal(err)
+		}
+		lock_num = (lock_num + direction * nb_ticks) % 100
+		if lock_num < 0 {
+			lock_num = lock_num + 100
+		}
+		if lock_num == 0 {
+			nb_occ_zero++
+		}
+	}
+
+	if err = scanner.Err(); err != nil {
+		log.Fatal(err)
+	}
+
+	fmt.Println(nb_occ_zero)
+}

+ 1 - 1
README.md

@@ -20,7 +20,7 @@ Each day's folder is named after the day number (`1` to `12`). Inside each folde
 
 | Day | Part 1 | Part 2 |
 |-----|--------|--------|
-| 1   |      | ⬜     |
+| 1   |      | ⬜     |
 | 2   | ⬜     | ⬜     |
 | 3   | ⬜     | ⬜     |
 | 4   | ⬜     | ⬜     |