File tree Expand file tree Collapse file tree 4 files changed +1116
-0
lines changed Expand file tree Collapse file tree 4 files changed +1116
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
1
+ all :
2
+ @go run 02-pt1.go
3
+ @go run 02-pt2.go
You can’t perform that action at this time.
0 commit comments