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

  • CameronDev@programming.devOPM
    link
    fedilink
    arrow-up
    2
    ·
    3 days ago

    I saw it :)

    If I understand your approach for pt2, you are getting all the fences and then grouping the connected ones? That definitely seems like a harder approach. I went with the counting corner method, which was also hard, but less iterating required.

    Keep the solutions coming, even as the sub wanes in activity, I still appreciate them :)

    • 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.