I was looking through the global leader board for day 3 today and noticed that the first 100 results are all under 90 seconds, with the top 4 being under 30 seconds. How is that possible? What are people leveraging in order to accomplish this?

  • chaos@beehaw.org
    link
    fedilink
    arrow-up
    1
    ·
    8 days ago

    See for yourself! This is someone solving day 1 of this year:

    https://youtu.be/ym1ae-vBy6g?si=jbjfMMsxMveKrbLS

    If you’re really going for it, you can automate some of the busy work like getting the input file and a template that’s ready to read it in and split it into lines, then it’s mostly a matter of skimming for what to do and knowing how to zip/map/fold/reduce/etc the data quickly. I was a bit surprised to see him having to add imports to his file, I’d think he’d have those ready to go, and of course quitting out of Vim to run the script isn’t necessary either, but I can’t judge because I definitely do that too…

  • Maddier1993@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    8 days ago

    Professional code golfers (Is that the right term?) build up a large suite of helper libraries from past events/from daily puzzle solving that they invoke for common problem types like graph search or constraint solving, or even for converting the text input to the right data structures.

    I assume the most difficult aspect of the problems is to translate the statements into actual code constraints/filter functions. So the spirit of the competition is not broken by having pre-written code (Although I am not sure many would think pre-written code is acceptable).

  • The_Shwa@midwest.socialOP
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    9 days ago

    Thinking about it a little more, the answer is a number, and the site tells you if you are too high or too low, so a modification of a binary search might be the answer? I’m not sure if there is a submission limit but if there isnt then that could result in a fast submission.

    Say the answer is 400 and you guess 100, the site tells you it is too low, you guess 1000, the site tells you its too high, now you know its between 100 and 1000, so you can narrow it down with a guess in the middle until you get to the answer. With some automation this would be pretty quick but it would defeat the point of the challenge.

    • Sekoia@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      1
      ·
      9 days ago

      The timeouts are 1 minute for the first 5 attempts, then 5 minutes.

      People are just really used to AoC’s format and use languages/frameworks that are extremely concise