From: Alan R Evans Date: Wed, 6 Dec 2023 13:17:46 +0000 (+0000) Subject: day06 X-Git-Url: https://fbox.kageds.com/gitweb/adventofcode.git/commitdiff_plain/34e8893d313b467fe6f6a97b2d7ee5d9e49dd5f4?ds=inline day06 --- diff --git a/2023/go/day05/__debug_bin1342718261 b/2023/go/day05/__debug_bin1342718261 deleted file mode 100755 index ea895ae..0000000 Binary files a/2023/go/day05/__debug_bin1342718261 and /dev/null differ diff --git a/2023/go/day05/day05.go b/2023/go/day05/day05.go index 902eb43..ec4698a 100644 --- a/2023/go/day05/day05.go +++ b/2023/go/day05/day05.go @@ -12,9 +12,9 @@ import ( ) type Map struct { - dest_range_start int - src_range_start int - range_len int + dest_range_start uint64 + src_range_start uint64 + range_len uint64 } type Almanac struct { @@ -28,16 +28,16 @@ type Almanac struct { } type SeedMap struct { - seed int - range_len int + seed uint64 + range_len uint64 } -func Part1(input string) int { +func Part1(input string) uint64 { seeds, almanac, _ := parseInput1(input) fmt.Println(seeds) fmt.Println(almanac) - minLoc := utils.MaxInt + minLoc := uint64(utils.MaxInt) for _, seed := range seeds { soil := lookup_dest(seed, almanac.seed2soil) fert := lookup_dest(soil, almanac.soil2fert) @@ -57,38 +57,24 @@ func Part1(input string) int { func Part2(input string) int { seedsmap, almanac, _ := parseInput2(input) - fmt.Println(seedsmap) - fmt.Println(almanac) - minLocMap := Map{dest_range_start: utils.MaxInt} - for _, x := range almanac.humid2loc { - if x.dest_range_start< minLocMap.dest_range_start { - minLocMap = x - } - } - fmt.Println(minLocMap.dest_range_start) - for i:=minLocMap.src_range_start;i= dataMap.src_range_start && entity <= dataMap.src_range_start + dataMap.range_len { return dataMap.dest_range_start + entity - dataMap.src_range_start @@ -116,7 +102,7 @@ func lookup_dest(entity int, data []Map) int { return entity } -func lookup_src(entity int, data []Map) int { +func lookup_src(entity uint64, data []Map) uint64 { 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 @@ -125,16 +111,16 @@ func lookup_src(entity int, data []Map) int { return entity } -func parseInput1(input string) ([]int, Almanac, error) { +func parseInput1(input string) ([]uint64, Almanac, error) { var almanac Almanac - var seeds []int + var seeds []uint64 lines := strings.Split(input, "\n") seedLine := string(lines[0]) tokens := strings.Fields(seedLine) for _, token := range tokens[1:] { - seeds = append(seeds, utils.MustAtoi(token)) + seeds = append(seeds, uint64(utils.MustAtoi(token))) } blocks := strings.Split(input, "\n\n") @@ -171,8 +157,8 @@ func parseInput2(input string) ([]SeedMap, Almanac, error) { seedLine := string(lines[0]) tokens := strings.Fields(seedLine) for i:=1;i