Day 12: Garden Groups

Megathread guidelines

  • Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
  • You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL

FAQ

  • RagingHungryPanda@lemm.ee
    link
    fedilink
    arrow-up
    2
    ·
    3 days ago

    hey thanks!

    I didn’t check any other solutions before finishing (currently wondering way day 13 is too low), but I thought that trying to traverse fences would be a pain and since I have everything separated by regions and not traversing the array, counting corners never came to mind.

    But the thought that I had was that for each region, all points will be a straight line in the V or H orientations, so if I can go up and down and count when last != next - 1, then that’ll tell me that that is a contiguous piece of fence.

    The idea isn’t too hard, for tracking the XAxis it’s

    region.GroupBy(YAxis) // row
    .Select(group => 
        group.Sort(g => g.XAxis) // column
            .Window(a,b => a != b - 1 ? 1 : 0).Sum()
    .Sum()
    

    Except that I used a different splitting method and that came to me later.