day1, part1
This commit is contained in:
parent
4f286742bb
commit
c1794a56ec
|
@ -0,0 +1,53 @@
|
|||
package dayone
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
func Run() {
|
||||
file, err := os.Open("./day1/example.txt")
|
||||
if err != nil {
|
||||
log.Print("error opening file")
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
|
||||
result := 0
|
||||
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
first := getFirstDigit(line)
|
||||
last := getLastDigit(line)
|
||||
|
||||
num := first * 10 + last
|
||||
result += num
|
||||
}
|
||||
|
||||
fmt.Printf(">> day 1 result is %d", result)
|
||||
}
|
||||
|
||||
func getFirstDigit(line string) int {
|
||||
for _, ch := range line {
|
||||
if unicode.IsDigit(ch) {
|
||||
return int(ch - '0')
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func getLastDigit(line string) int {
|
||||
for i := len(line) - 1; i >= 0; i-- {
|
||||
simbols := []rune(line)
|
||||
ch := simbols[i]
|
||||
if unicode.IsDigit(ch) {
|
||||
return int(ch - '0')
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
1abc2
|
||||
pqr3stu8vwx
|
||||
a1b2c3d4e5f
|
||||
treb7uchet
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue