Thanks to visit codestin.com
Credit goes to programming.dev

Deebster

New account since lemmyrs.org went down, other @Deebsters are available.

  • 59 Posts
  • 1.1K Comments
Joined 2 years ago
Codestin Search App
Cake day: October 16th, 2023

Codestin Search App











  • DeebstertoAdvent Of Code❄ - 2025 DAY 12 SOLUTIONS - ❄
    Codestin Search App
    Codestin Search App
    Codestin Search App
    4
    ·
    Codestin Search App
    22 days ago

    Mild spoilers ahead, but you’re reading the solutions thread.

    I was just doing some preliminary checking of the data on my phone with Nushell (to see how much my ageing laptop would suffer) when I discovered there weren’t any non trivial cases.

    Normally I get the test data working before trying the input data, this is definitely teaching me the value of investigating the data before heading down into the code mines.

    Unfortunately I can’t get the second star yet because I missed a few days.







  • DeebstertoAdvent Of Code🧦 - 2025 DAY 11 SOLUTIONS - 🧦
    Codestin Search App
    Codestin Search App
    English
    Codestin Search App
    2
    ·
    Codestin Search App
    22 days ago

    nushell

    I’m still travelling, so another phone attempt. Jet lag says sleep, so just part 1 for now:

    def part1 [filename: string] {
      mut input = open $filename | lines |
        each { parse '{index}: {children}' | update children { split row " " } | first } |
        insert paths { null }
      print $"Data loaded, ($input | length) devices"
    
      $input = explore-path $input you
      $input | where index == you | get 0.paths
    }
    
    def explore-path [devices, start: string] {
      print $"Exploring ($start)"
      let dev = $devices | where index == $start | first
      if ($dev | get paths) != null {
        print "Already explored"
        return $devices
      }
    
      # Shadow with mutable version
      mut devices = $devices
      mut paths = 0
      let is_out = $dev | get children | where ($it == out) | is-not-empty
      if $is_out {
        print $"Found an out device: ($start)"
        $paths = 1
      } else {
        for child in ($dev | get children ) {
          $devices = explore-path $devices $child
          $paths += $devices | where index == $child | get 0.paths
        }
      }
    
      # Shadow with immutable... wtf
      let paths = $paths
      print $"Setting paths for ($start) to ($paths)"
      $devices = $devices | update paths { |row| if $row.index == $start {  
    $paths } else {} }
       $devices
    }