Giter VIP home page Giter VIP logo

adventofcode's Introduction

adventofcode

My personal implementations for Advent of Code (AoC)

Leaderboard entries (only top 100)

Year Day Language Rank part 1 Rank part 2 Link
2016 2 C++ 81 83 link
2016 20 C++ - 29 link
2018 21 Rust 86 - link

Solved challenges

Implementations for other languages will hopefully come too some day.

2020

AoC Rust
Day 1 - "Report Repair" main.rs
Day 2 main.rs
Day 3 main.rs
Day 4 main.rs
Day 5 main.rs
Day 6 main.rs
Day 7 main.rs
Day 8 main.rs
Day 9 main.rs
Day 10 main.rs
Day 11 main.rs
Day 12 main.rs
Day 13 main.rs
Day 14 main.rs
Day 15 main.rs
Day 16 main.rs
Day 17 main.rs
Day 18 main.rs
Day 19 main.rs
Day 22 main.rs
Day 25 main.rs

2019

AoC Rust
Day 1 - "The Tyranny of the Rocket Equation" main.rs
Day 2 - "1202 Program Alarm" main.rs
Day 3 - "Crossed Wires" main.rs
Day 4 - "Secure Container" main.rs
Day 5 - "Sunny with a Chance of Asteroids" main.rs
Day 6 - "Universal Orbit Map" main.rs
Day 7 - "Amplification Circuit" main.rs
Day 8 - "Space Image Format" main.rs
Day 9 - "Sensor Boost" main.rs
Day 10 - "Monitoring Station" main.rs
Day 11 - "Space Police" main.rs
Day 12 - "The N-Body Problem" main.rs
Day 13 - "Care Package" main.rs
Day 14 - "Space Stoichiometry" main.rs
Day 15 - "Oxygen System" main.rs
Day 16 - "Flawed Frequency Transmission" main.rs
Day 17 - "Set and Forget" main.rs
Day 18 - "Many-Worlds Interpretation" main.rs
Day 19 - "Tractor Beam" main.rs
Day 20 - "Donut Maze" main.rs
Day 21 - "Springdroid Adventure" main.rs
Day 22 - "Slam Shuffle" main.rs
Day 23 - "Category Six" main.rs
Day 24 - "Planet of Discord" main.rs
Day 25 - "Cryostasis" main.rs

2018

AoC Rust
Day 1 main.rs, 1 & 2
Day 2 main.rs, 1 & 2
Day 3 main.rs, 1 & 2
Day 4 main.rs, 1 & 2
Day 5 main.rs, 1 & 2
Day 6 main.rs, 1 & 2
Day 7 main.rs, 1 & 2
Day 8 main.rs, 1 & 2
Day 9 main.rs, 1 & 2
Day 10 main.rs
Day 11 main.rs, 1 & 2
Day 12 main.rs, 1 & 2
Day 13 main.rs, 1 & 2
Day 14 main.rs, 1 & 2
Day 15 main.rs, 1 & 2
Day 16 main.rs, 1 & 2
Day 17 main.rs, 1 & 2
Day 18 main.rs, 1 & 2
Day 19 main.rs, 1 & 2
Day 20 main.rs, 1 & 2
Day 21 main.rs, 1 & 2
Day 22 main.rs, 1 & 2
Day 23 main.rs, 1 & 2
Day 24 main.rs, 1 & 2
Day 25 main.rs, 1

2017

AoC Rust ion
Day 1 1 & 2 1 & 2
Day 2 1 & 2
Day 3 1 & 2
Day 4 1 & 2
Day 5 1 & 2
Day 6 1 & 2
Day 7 1 & 2
Day 8 1 & 2
Day 9 1 & 2
Day 10 1 & 2
Day 12 1 & 2
Day 13 1 & 2
Day 14 1 & 2
Day 15 1 & 2

2016

AoC C++ Pen & paper
Day 1 1 & 2
Day 2 1 & 2
Day 3 1 & 2
Day 4 1 & 2
Day 5 1 & 2
Day 6 1 & 2
Day 7 1 & 2
Day 8 1 & 2
Day 9 1 & 2
Day 10 1 & 2
Day 11 *
Day 12 1 & 2
Day 13 1 & 2
Day 14 1 & 2
Day 15 1 & 2
Day 16 1 & 2
Day 17 1 & 2
Day 18 1 & 2
Day 19 1 & 2
Day 20 1 & 2
Day 21 1 & 2
Day 22 1 2
Day 23 1 & 1

* solved and implemented together with Chrissi. See collaborated code in Chrissis Repo here. A port to C++ is in progress.

2015

AoC C C++ Pen & paper Rust
Day 1 1 & 2 1 & 2
Day 2 1 & 2 1 & 2
Day 3 1 & 2 1 & 2
Day 4 1 & 2 1 & 2
Day 5 1 & 2 1 & 2
Day 6 1 & 2
Day 7 1 & 2
Day 8 1 & 2
Day 9 1 & 2
Day 10 1 & 2
Day 11 1 & 2 1 & 2
Day 12 1 & 2
Day 13 1 & 2
Day 14 1 & 2
Day 15 1 & 2
Day 16 1 & 2
Day 17 1 & 2
Day 18 1 (optimized) & 2 (optimized)
Day 19 1 & 2
Day 20 1 & 2
Day 21 1 & 2 1 & 2
Day 22 1 & 2
Day 23 1 & 2
Day 24 1 & 2
Day 25 1 & 2

Directory structure

Beginning from 2016 (maybe, I'll adapt 2015 too some day) I will use the following directory structure:

adventofcode/
├── 20xx
│   ├── _inputs
│   │   └── dayXX
│   │       ├── test.input
│   │       ├── test.solution1
│   │       └── test.solution2
│   ├── _tasks
│   │   └── dayXX.md
│   └── language
│       └── dayXX
│           ├── part1.extension
│           └── part2.extension
├── LICENSE
└── README.md
  • Each _inputs/dayXX/-directory can contain any number of possible input sets.
    • Each set can have an arbitrary name (use of whitespace-characters is highly discouraged)
    • Each .input file should have coresponding .solutionX files (Where X is either 1 or 2 and stands for the part the solution is for)
    • Format of the content of the .input-files MUST be in the same format as AoC provides it.
    • Format of the content of the .solution-files MUST be in the same format as AoC expects it (= a simple string without any metadata).
    • It is recommended that implementations provide a possibility to chose a specific input set by its name
  • Depending on the language, the actual (language-internal) structure may be slightly different and it may contain additional files.
  • Where possible (e.g. for object oriented languages), I'll try to keep a single main source file for the whole year/language combination, implementing each day as a class/object with a consistent interface. Note: Only true for 2016cpp. In 2017rust I am using a separate application for each day again. Common code (such as importing) will be placed in an AoC-utils library.

Commit messages

All commit messages should be of the following format (when applicable):

year language day(/part)| Msg

where:

  • year is the four digit number of the year the task is from
    • lists, ranges, and combinations of those, such as 2015, 2017, 2015-2017, 2016+, 2015, 2017-2019, and all* are allowed
  • language is the language this commit is for
    • can also be all* or a comma-separated list, such as c,rust
  • day is the two-digit specifier of the day the task is from
    • same rules as for the year apply
  • part is optional if this commit only affects a specific part
    • as of now, this can only be 1 or 2
    • this must be ommitted if it affects all parts
  • the separator | directly follows the day or optional part and is followed by exactly one space before the message
  • Msg should start with a capital letter
  • The complete title of the message must not be longer than 72 characters

* all means all elements of this set which are in the repo at this moment. In this case, the body of the commit message should exactly specify all affected elements by its identifier.

adventofcode's People

Contributors

bafdyce avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.