We all know and love (!) the leaderboard, but how about a different method?

One can solve a problem with a simple, naive method resulting in a short program and long runtime, or put in lots of explicit optimizations for more code and shorter runtime. (Or if you’re really good, a short, fast program!)

I propose the line-second.

Take the number of lines in your program (eg, 42 lines) and the runtime (eg 0.096 seconds). Multiply these together to get a score of 4.032 line-seconds.

A smaller score is a shorter, faster program.

Similarly, (for a particular solver), a larger score is a “harder” problem.

  • exocortex@discuss.tchncs.de
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    10 months ago
    1. I think a more consistent approach would he to not count lines, but filesizes after the code has been minimized with a specific minimizer. I could write everything in one line in many languages, so lines isn’t very clever.

    2. The code has to be compiled and run on a specific architecture and with specific test input (we don’t know if the AoC-example-data is always the same in size or resulting computanional complexity.

    3. The final metric could be: [minified filesize] * [code execution time] * [problem solving time].

  • CameronDev@programming.devM
    link
    fedilink
    arrow-up
    4
    ·
    10 months ago

    Some of the challenges feasably could be solved with a pen and paper amd a keen eye, giving a line count of 0.

    #nocode :D

  • hades@lemm.ee
    link
    fedilink
    arrow-up
    3
    ·
    10 months ago

    Lines of code can be arbitrarily reduced, and seconds to solve depends to a large extent on how good my hardware is. So both metrics are useless, and multiplying them makes a useless-squared metric.

    I love it!

    Here are my stats for the solutions so far (with no optimisation beyond the initial solution):

    +-----+-----------+-------+---------------+
    | Day | Time (s)  | Lines | line-seconds  |
    +-----+-----------+-------+---------------+
    |  1  |  0.003    |   35  |   0.098       |
    |  2  |  0.001    |   47  |   0.042       |
    |  3  |  0.006    |   60  |   0.348       |
    |  4  |  0.003    |   41  |   0.115       |
    |  5  |  0.077    |   74  |   5.708       |
    |  6  |  0.000    |   45  |   0.001       |
    |  7  |  0.005    |   87  |   0.395       |
    |  8  | 10.175    |   60  | 610.476       |
    |  9  |  0.004    |   31  |   0.128       |
    | 10  |  0.084    |  103  |   8.634       |
    | 11  |  0.240    |   49  |  11.771       |
    | 12  |  2.448    |   93  | 227.633       |
    | 13  |  0.009    |   83  |   0.707       |
    +-----+-----------+-------+---------------+