Welcome to the Advent of Code 2017 repository! This project features solutions to the Advent of Code challenges from 2017, implemented in both Java and Kotlin. Each day presents a new puzzle that tests your programming skills and problem-solving abilities. Dive in and explore the solutions, or use them as inspiration for your own coding journey.
- About Advent of Code
- Repository Overview
- Technologies Used
- Getting Started
- Running the Solutions
- Contributing
- License
- Links
Advent of Code is an annual event that challenges developers with daily programming puzzles during the holiday season. Each day, a new problem is unlocked, and participants can solve it in any programming language they prefer. The event encourages learning and community engagement.
This repository contains solutions for all 25 challenges from the Advent of Code 2017. The solutions are organized by day, and you can find implementations in both Java and Kotlin. The goal is to provide clear, efficient, and well-documented code that can serve as a reference for others.
- Java: A versatile programming language that is widely used in various applications.
- Kotlin: A modern programming language that runs on the Java Virtual Machine (JVM) and is known for its concise syntax and safety features.
To get started with this repository, you will need to clone it to your local machine. You can do this using the following command:
git clone https://github.com/chrisiphique/advent-of-code-2017.git
Once you have cloned the repository, navigate to the directory:
cd advent-of-code-2017
Make sure you have the following installed:
- Java Development Kit (JDK)
- Kotlin Compiler
You can download the JDK from the Oracle website and the Kotlin compiler from the Kotlin website.
To run the solutions, you will need to navigate to the specific day's folder and execute the Java or Kotlin files. For example, to run Day 1's solution, you would do the following:
cd day01
javac Solution.java
java Solution
cd day01
kotlinc Solution.kt -include-runtime -d Solution.jar
java -jar Solution.jar
You can find the compiled solutions in the respective day folders. For a complete list of releases, check the Releases section.
Contributions are welcome! If you would like to add your own solutions or improve existing ones, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or fix.
- Make your changes.
- Commit your changes and push to your branch.
- Open a pull request.
Your contributions can help others learn and improve their coding skills.
This project is licensed under the MIT License. Feel free to use the code for personal or educational purposes.
For more information and to download the latest releases, visit the Releases section.
Here is a brief overview of the challenges for each day:
- Day 1: Inverse Captcha
- Day 2: Corruption Checksum
- Day 3: Spiral Memory
- Day 4: High-Entropy Passphrases
- Day 5: A Maze of Twisty Trampolines, All Alike
- Day 6: Memory Reallocation
- Day 7: Recursive Circus
- Day 8: I Heard You Like Registers
- Day 9: Stream Processing
- Day 10: Knot Hash
- Day 11: Hex Ed
- Day 12: Digital Plumber
- Day 13: Packet Scanners
- Day 14: Disk Defragmentation
- Day 15: Dueling Generators
- Day 16: Permutation Promenade
- Day 17: Spinlock
- Day 18: Duet
- Day 19: A Series of Tubes
- Day 20: Particle Swarm
- Day 21: Fractal Art
- Day 22: Sporifica Virus
- Day 23: Coprocessor Conflation
- Day 24: Air Duct Spelunking
- Day 25: The Halting Problem
Engaging with the community is an essential part of the Advent of Code experience. Many developers share their solutions, discuss strategies, and learn from one another. Join forums, Discord servers, or Reddit threads to connect with others who are participating in the event.
Thank you for visiting the Advent of Code 2017 repository. We hope you find the solutions helpful and inspiring. Feel free to explore the code, learn from it, and contribute your own solutions. Happy coding!