isundil 9 years ago
parent
commit
bf4b4cd085
1 changed files with 98 additions and 0 deletions
  1. 98 0
      src/d03/d03.go

+ 98 - 0
src/d03/d03.go

@@ -0,0 +1,98 @@
+package main
+
+import "strings"
+import "bufio"
+import "strconv"
+import "fmt"
+import "os"
+
+func isPossibleTriangle(sides [3]int) bool {
+    sum := 0
+    for _, i := range(sides) {
+        sum += i
+    }
+
+    for _, i := range(sides) {
+        if (sum -i <= i) {
+            return false
+        }
+    }
+    return true
+}
+
+func lineToIntArr(line string) [3]int {
+    words := strings.Fields(line)
+    if len(words) == 3 {
+        var wints [3]int
+        i := 0
+
+        for _, wstr := range(words) {
+            wints[i], _ = strconv.Atoi(wstr)
+            i++
+        }
+        return wints
+    }
+    return [3]int { 0, 0, 0 }
+}
+
+func isPossible(line string) bool {
+    wints := lineToIntArr(line)
+    return isPossibleTriangle(wints)
+}
+
+func byLine() int {
+    reader := bufio.NewReader(os.Stdin)
+    result := 0
+
+    for true {
+        read, _, err := reader.ReadLine()
+
+        if isPossible(string(read)) {
+            result++
+        }
+        if (err != nil) {
+            break
+        }
+    }
+
+    return result
+}
+
+func byCol() int {
+    result := 0
+    reader := bufio.NewReader(os.Stdin)
+    i := 0
+    var triangles [3][3]int
+
+    for true {
+        read, _, err := reader.ReadLine()
+
+        currentLine := lineToIntArr(string(read))
+        triangles[0][i] = currentLine[0]
+        triangles[1][i] = currentLine[1]
+        triangles[2][i] = currentLine[2]
+
+        if (i == 2) {
+            for _, triangle := range(triangles) {
+                if isPossibleTriangle(triangle) {
+                    result++
+                }
+            }
+            i = 0
+        } else {
+            i++
+        }
+        if (err != nil) {
+            break
+        }
+    }
+
+    return result
+}
+
+func main() {
+    result := byCol()
+
+    fmt.Println("result is ", result)
+}
+