-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpb67.go
38 lines (35 loc) · 799 Bytes
/
pb67.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main
import (
"fmt"
"io/ioutil"
"strings"
"strconv"
)
func high_score(triangle [101][101]int) int{
for i:=len(triangle)-3;i>=0;i--{
for j:=len(triangle[i])-2;j>=0;j--{
v1 := triangle[i+1][j] + triangle[i][j]
v2 := triangle[i+1][j+1] + triangle[i][j]
if v1 > v2 {
triangle[i][j] = v1
} else {
triangle[i][j] = v2
}
}
}
return triangle[0][0]
}
func main(){
b, err := ioutil.ReadFile("lib/triangle.txt")
if err != nil {panic(err)}
contents := string(b)
triangle := [101][101]int{}
for i,line := range strings.Split(contents, "\n"){
for j,val := range strings.Split(strings.TrimSpace(line), " "){
v,_ := strconv.Atoi(val)
triangle[i][j] = v
}
}
m := high_score(triangle)
fmt.Println(m)
}