Skip to content

Commit e19523d

Browse files
day 2 complete
1 parent 54f60ec commit e19523d

File tree

4 files changed

+1116
-0
lines changed

4 files changed

+1116
-0
lines changed

02/02-pt1.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"os"
7+
"strconv"
8+
"time"
9+
)
10+
11+
func checkErr(err error) {
12+
if err != nil {
13+
fmt.Println(err)
14+
return
15+
}
16+
}
17+
18+
func main() {
19+
start := time.Now()
20+
file, err := os.Open("input")
21+
if err != nil {
22+
fmt.Println(err)
23+
return
24+
}
25+
defer file.Close()
26+
27+
scanner := bufio.NewScanner(file)
28+
29+
d := 0
30+
x := 0
31+
for scanner.Scan() {
32+
s := scanner.Text()
33+
if s == "" {
34+
continue
35+
}
36+
if s[0] == 'f' {
37+
tmp := 0
38+
tmp, err = strconv.Atoi(s[8:])
39+
checkErr(err)
40+
x += tmp
41+
42+
} else if s[0] == 'd' {
43+
tmp := 0
44+
tmp, err = strconv.Atoi(s[5:])
45+
checkErr(err)
46+
d += tmp
47+
} else if s[0] == 'u' {
48+
tmp := 0
49+
tmp, err = strconv.Atoi(s[3:])
50+
checkErr(err)
51+
d -= tmp
52+
}
53+
}
54+
fmt.Println(d * x)
55+
fmt.Println("time:", time.Since(start))
56+
}

02/02-pt2.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"os"
7+
"strconv"
8+
"time"
9+
)
10+
11+
func checkErr(err error) {
12+
if err != nil {
13+
fmt.Println(err)
14+
return
15+
}
16+
}
17+
18+
func main() {
19+
start := time.Now()
20+
file, err := os.Open("input")
21+
if err != nil {
22+
fmt.Println(err)
23+
return
24+
}
25+
defer file.Close()
26+
27+
scanner := bufio.NewScanner(file)
28+
29+
d := 0
30+
x := 0
31+
aim := 0
32+
for scanner.Scan() {
33+
s := scanner.Text()
34+
if s == "" {
35+
continue
36+
}
37+
if s[0] == 'f' {
38+
tmp := 0
39+
tmp, err = strconv.Atoi(s[8:])
40+
checkErr(err)
41+
x += tmp
42+
d += aim * tmp
43+
} else if s[0] == 'd' {
44+
tmp := 0
45+
tmp, err = strconv.Atoi(s[5:])
46+
checkErr(err)
47+
aim += tmp
48+
} else if s[0] == 'u' {
49+
tmp := 0
50+
tmp, err = strconv.Atoi(s[3:])
51+
checkErr(err)
52+
aim -= tmp
53+
}
54+
}
55+
fmt.Println(d * x)
56+
fmt.Println("time:", time.Since(start))
57+
}

02/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
all:
2+
@go run 02-pt1.go
3+
@go run 02-pt2.go

0 commit comments

Comments
 (0)