init
This commit is contained in:
commit
ca9736d8ec
122 files changed
+28514
No files matched your search
@@ -0,0 +1,98 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type ConversionRange struct {
|
||||
source_start int
|
||||
source_end int
|
||||
target_start int
|
||||
target_end int
|
||||
translate int
|
||||
}
|
||||
|
||||
func convert(c *ConversionRange, num int) int {
|
||||
if num >= c.source_start && num <= c.source_end {
|
||||
return num + c.translate
|
||||
} else {
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
||||
func print(c ConversionRange) {
|
||||
fmt.Println()
|
||||
}
|
||||
|
||||
func main() {
|
||||
file, _ := os.Open("./test.text")
|
||||
defer file.Close()
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
var seed_to_soil []*ConversionRange
|
||||
|
||||
// Parse file
|
||||
index := 0
|
||||
s_to_s_mapping := false
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
|
||||
// Get starting seeds
|
||||
|
||||
if index == 0 {
|
||||
seeds_list := strings.Split(line, ": ")[1]
|
||||
seeds_value_list := strings.Split(seeds_list, " ")
|
||||
|
||||
var seeds []int
|
||||
|
||||
for _, seed := range seeds_value_list {
|
||||
seed_value, _ := strconv.Atoi(seed)
|
||||
seeds = append(seeds, seed_value)
|
||||
}
|
||||
|
||||
fmt.Println("Seeds: ", seeds)
|
||||
}
|
||||
|
||||
if line == "seed-to-soil map:" {
|
||||
s_to_s_mapping = true
|
||||
continue
|
||||
}
|
||||
|
||||
if s_to_s_mapping {
|
||||
if line == "" {
|
||||
s_to_s_mapping = false
|
||||
for _, r := range seed_to_soil {
|
||||
print(r)
|
||||
}
|
||||
continue
|
||||
} else {
|
||||
var r_values []int
|
||||
range_strings := strings.Split(line, " ")
|
||||
for _, r := range range_strings {
|
||||
r_value, _ := strconv.Atoi(r)
|
||||
r_values = append(r_values, r_value)
|
||||
}
|
||||
|
||||
var temp *ConversionRange
|
||||
temp = new(ConversionRange)
|
||||
|
||||
temp.target_start = r_values[0]
|
||||
temp.source_start = r_values[1]
|
||||
length := r_values[2]
|
||||
|
||||
temp.target_end = temp.target_start + length
|
||||
temp.source_end = temp.source_start + length
|
||||
temp.translate = temp.target_start - temp.target_end
|
||||
|
||||
seed_to_soil = append(seed_to_soil, temp)
|
||||
}
|
||||
}
|
||||
|
||||
index++
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user