/advent-of-code-2022

This repository contains the solutions for the challenges found under the Advent of Code 2022 project.

Primary LanguageJava

advent-of-code-2022

This repository contains the solutions for the challenges found under the Advent of Code 2022 project.

Initially, I wanted to do software engineering instead of purely programming to solve the tasks. It turned out that the former approach took too much of my time, so on day 3 I decided to focus on speed rather than on maintainability.

Software Engineering

Software Engineering can be defined as programming in the function of time.

Key attributes:

  • Scalability
  • Testing
  • Gracious error handling
  • Modularity
  • Extensibility
  • Readibility

Programming

  • The goal is mostly solving a task quickly without considering the lifespan of the code.
  • The points listed under Software Engineering are not as important when one just simply programs.

You can read more about the definitions in the book Software Engineering @ Google .

Prerequisites

  • OpenJDK 17.0.5
  • Apache Maven 3.8.6

Run

In order to calculate the results, run the command below:

mvn exec:java

Test

Run the below command to run the tests:

mvn test