X-Git-Url: https://fbox.kageds.com/gitweb/adventofcode.git/blobdiff_plain/34e8893d313b467fe6f6a97b2d7ee5d9e49dd5f4..refs/heads/master:/2023/go/day05/day05.go?ds=inline diff --git a/2023/go/day05/day05.go b/2023/go/day05/day05.go index ec4698a..39450e3 100644 --- a/2023/go/day05/day05.go +++ b/2023/go/day05/day05.go @@ -12,9 +12,9 @@ import ( ) type Map struct { - dest_range_start uint64 - src_range_start uint64 - range_len uint64 + dest_range_start int + src_range_start int + range_len int } type Almanac struct { @@ -28,16 +28,16 @@ type Almanac struct { } type SeedMap struct { - seed uint64 - range_len uint64 + seed int + range_len int } -func Part1(input string) uint64 { +func Part1(input string) int { seeds, almanac, _ := parseInput1(input) fmt.Println(seeds) fmt.Println(almanac) - minLoc := uint64(utils.MaxInt) + minLoc := int(utils.MaxInt) for _, seed := range seeds { soil := lookup_dest(seed, almanac.seed2soil) fert := lookup_dest(soil, almanac.soil2fert) @@ -58,42 +58,25 @@ func Part1(input string) uint64 { func Part2(input string) int { seedsmap, almanac, _ := parseInput2(input) - - minLoc := uint64(utils.MaxInt) - for _, seedmap := range seedsmap { - for i := seedmap.seed;i= seedmap.seed && seed < seedmap.seed+seedmap.range_len { + return i } } - fmt.Println(minLoc) } -// -// fmt.Println(minSeedMap) -// minLoc = utils.MaxInt -// for i:=minSeedMap.seed;i= dataMap.src_range_start && entity <= dataMap.src_range_start + dataMap.range_len { return dataMap.dest_range_start + entity - dataMap.src_range_start @@ -102,7 +85,7 @@ func lookup_dest(entity uint64, data []Map) uint64 { return entity } -func lookup_src(entity uint64, data []Map) uint64 { +func lookup_src(entity int, data []Map) int { for _, dataMap := range data { if entity >= dataMap.dest_range_start && entity <= dataMap.dest_range_start + dataMap.range_len { return dataMap.src_range_start + entity - dataMap.dest_range_start @@ -111,16 +94,16 @@ func lookup_src(entity uint64, data []Map) uint64 { return entity } -func parseInput1(input string) ([]uint64, Almanac, error) { +func parseInput1(input string) ([]int, Almanac, error) { var almanac Almanac - var seeds []uint64 + var seeds []int lines := strings.Split(input, "\n") seedLine := string(lines[0]) tokens := strings.Fields(seedLine) for _, token := range tokens[1:] { - seeds = append(seeds, uint64(utils.MustAtoi(token))) + seeds = append(seeds, int(utils.MustAtoi(token))) } blocks := strings.Split(input, "\n\n") @@ -157,8 +140,8 @@ func parseInput2(input string) ([]SeedMap, Almanac, error) { seedLine := string(lines[0]) tokens := strings.Fields(seedLine) for i:=1;i