added day02
This commit is contained in:
parent
3099893da1
commit
120a39fb6e
|
@ -5,4 +5,6 @@ set(CMAKE_CXX_STANDARD 20)
|
|||
|
||||
add_executable(AOC_24 main.cpp
|
||||
days/day01.cpp
|
||||
days/day01.h)
|
||||
days/day01.h
|
||||
days/day02.cpp
|
||||
days/day02.h)
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
//
|
||||
// Created by stedd on 02.12.24.
|
||||
//
|
||||
|
||||
#include "day02.h"
|
||||
|
||||
/*
|
||||
--- Day 2: Red-Nosed Reports ---
|
||||
|
||||
Fortunately, the first location The Historians want to search isn't a long walk from the Chief Historian's office.
|
||||
|
||||
While the Red-Nosed Reindeer nuclear fusion/fission plant appears to contain no sign of the Chief Historian, the
|
||||
engineers there run up to you as soon as they see you. Apparently, they still talk about the time Rudolph was saved
|
||||
through molecular synthesis from a single electron.
|
||||
|
||||
They're quick to add that - since you're already here - they'd really appreciate your help analyzing some unusual data
|
||||
from the Red-Nosed reactor. You turn to check if The Historians are waiting for you, but they seem to have already
|
||||
divided into groups that are currently searching every corner of the facility. You offer to help with the unusual data.
|
||||
|
||||
The unusual data (your puzzle input) consists of many reports, one report per line. Each report is a list of numbers
|
||||
called levels that are separated by spaces. For example:
|
||||
|
||||
7 6 4 2 1
|
||||
1 2 7 8 9
|
||||
9 7 6 2 1
|
||||
1 3 2 4 5
|
||||
8 6 4 4 1
|
||||
1 3 6 7 9
|
||||
|
||||
This example data contains six reports each containing five levels.
|
||||
|
||||
The engineers are trying to figure out which reports are safe. The Red-Nosed reactor safety systems can only
|
||||
tolerate levels that are either gradually increasing or gradually decreasing. So, a report only counts as safe if
|
||||
both of the following are true:
|
||||
|
||||
The levels are either all increasing or all decreasing.
|
||||
Any two adjacent levels differ by at least one and at most three.
|
||||
|
||||
In the example above, the reports can be found safe or unsafe by checking those rules:
|
||||
|
||||
7 6 4 2 1: Safe because the levels are all decreasing by 1 or 2.
|
||||
1 2 7 8 9: Unsafe because 2 7 is an increase of 5.
|
||||
9 7 6 2 1: Unsafe because 6 2 is a decrease of 4.
|
||||
1 3 2 4 5: Unsafe because 1 3 is increasing but 3 2 is decreasing.
|
||||
8 6 4 4 1: Unsafe because 4 4 is neither an increase or a decrease.
|
||||
1 3 6 7 9: Safe because the levels are all increasing by 1, 2, or 3.
|
||||
|
||||
So, in this example, 2 reports are safe.
|
||||
|
||||
Analyze the unusual data from the engineers. How many reports are safe?
|
||||
|
||||
*/
|
||||
|
||||
void day02::Calculate()
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// Created by stedd on 02.12.24.
|
||||
//
|
||||
|
||||
#ifndef DAY02_H
|
||||
#define DAY02_H
|
||||
|
||||
|
||||
class day02
|
||||
{
|
||||
public:
|
||||
static void Calculate();
|
||||
};
|
||||
|
||||
#endif //DAY02_H
|
3
main.cpp
3
main.cpp
|
@ -2,6 +2,7 @@
|
|||
#include <iostream>
|
||||
|
||||
#include "days/day01.h"
|
||||
#include "days/day02.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
|
@ -12,7 +13,7 @@ int main()
|
|||
for (int i = 1; i <= cycles; i++)
|
||||
{
|
||||
const auto startTime = std::chrono::high_resolution_clock::now();
|
||||
day01::Calculate();
|
||||
day02::Calculate();
|
||||
const auto endTime = std::chrono::high_resolution_clock::now();
|
||||
const std::chrono::duration<double> diff = endTime - startTime;
|
||||
|
||||
|
|
Loading…
Reference in New Issue