diff options
author | Julien Dessaux | 2021-12-07 14:26:36 +0100 |
---|---|---|
committer | Julien Dessaux | 2021-12-07 14:26:36 +0100 |
commit | 6ed18289c89eaff3557907df63cf58bd2009b3ee (patch) | |
tree | 903d730030c18ab25c212938794c1c03f65f800f /2021/02/first.go | |
parent | Initial import (diff) | |
download | advent-of-code-6ed18289c89eaff3557907df63cf58bd2009b3ee.tar.gz advent-of-code-6ed18289c89eaff3557907df63cf58bd2009b3ee.tar.bz2 advent-of-code-6ed18289c89eaff3557907df63cf58bd2009b3ee.zip |
Added the first days
Diffstat (limited to '')
-rw-r--r-- | 2021/02/first.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/2021/02/first.go b/2021/02/first.go new file mode 100644 index 0000000..1550bcb --- /dev/null +++ b/2021/02/first.go @@ -0,0 +1,42 @@ +package main + +import ( + "bufio" + "fmt" + "log" + "os" + "strconv" + "strings" +) + +func main() { + f, err := os.Open("input") + if err != nil { + log.Fatalf("%+v", err) + } + defer f.Close() + + scanner := bufio.NewScanner(f) + scanner.Split(bufio.ScanLines) + + pos := 0 + depth := 0 + for scanner.Scan() { + elts := strings.Split(scanner.Text(), " ") + i, err := strconv.Atoi(elts[1]) + if err != nil { + log.Fatalf("%+v", err) + } + switch elts[0] { + case "forward": + pos += i + case "down": + depth += i + case "up": + depth -= i + default: + panic(elts[0]) + } + } + fmt.Println(pos * depth) +} |