66 lines
1.1 KiB
Go
66 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"unicode"
|
|
)
|
|
|
|
var SNUMBER = []string{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}
|
|
|
|
func readData(s string) []string {
|
|
var result []string
|
|
fileReader, err := os.Open(s)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
lines := bufio.NewScanner(fileReader)
|
|
lines.Split(bufio.ScanLines)
|
|
for lines.Scan() {
|
|
result = append(result, lines.Text())
|
|
}
|
|
return result
|
|
}
|
|
func getRealDigits(s string) []int {
|
|
var result []int
|
|
|
|
return result
|
|
|
|
}
|
|
func getDigits(s string) []int {
|
|
var result []int
|
|
a := []rune(s)
|
|
for _, r := range a {
|
|
if unicode.IsDigit(r) {
|
|
result = append(result, int(r-'0'))
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
func main() {
|
|
fmt.Println("Goo Fast!")
|
|
//Part1()
|
|
Part2()
|
|
}
|
|
func Part1() {
|
|
data := readData("./data")
|
|
var result int
|
|
for _, line := range data {
|
|
d := getDigits(line)
|
|
fmt.Println(line)
|
|
number := d[0]*10 + d[len(d)-1]
|
|
result += number
|
|
}
|
|
fmt.Println("the result of part 1 is: ", result)
|
|
}
|
|
func Part2() {
|
|
data := readData("./test-data")
|
|
var result int
|
|
for _, line := range data {
|
|
d := getDigits(line)
|
|
fmt.Println(line)
|
|
number := d[0]*10 + d[len(d)-1]
|
|
result += number
|
|
}
|
|
}
|