spaghetti

This commit is contained in:
Stedd 2024-12-02 23:53:45 +01:00
parent c74be75bbe
commit a6fb39f168
2 changed files with 13 additions and 21 deletions

View File

@ -74,7 +74,9 @@ void day02::Calculate()
int safeReports = 0;
for (std::string line; std::getline(input, line, '\n');)
{
if (IsSafe(line))
std::istringstream iss(line);
std::vector numbers(std::istream_iterator<int>{iss}, std::istream_iterator<int>());
if (IsSafe(numbers, false))
{
safeReports++;
}
@ -82,10 +84,8 @@ void day02::Calculate()
std::cout << safeReports << '\n';
}
bool day02::IsSafe(const std::string &line)
bool day02::IsSafe(const std::vector<int> &numbers, const bool secondPass)
{
std::istringstream iss(line);
std::vector<int> numbers(std::istream_iterator<int>{iss}, std::istream_iterator<int>());
int previousNumber = numbers.at(numbers.size() - 1);
bool increasing = false;
bool decreasing = false;
@ -106,22 +106,14 @@ bool day02::IsSafe(const std::string &line)
}
}
if (SafetyChecks(currentNumber, previousNumber, increasing, decreasing) == 1)
if (SafetyChecks(currentNumber, previousNumber, increasing, decreasing) == 1 && !secondPass)
{
// numbers.erase(numbers.begin() + i);
// if (i + 1 < numbers.size())
// {
// previousNumber = numbers.at(i + 1);
// } else
// {
// printf("wtf do i do here?");
// }
// //currentNumber = numbers.at(i);
// if (SafetyChecks(currentNumber, previousNumber, increasing, decreasing) == 1)
// {
safe = false;
return false;
// }
if (IsSafe(numbers, true))
{
safe = false;
return false;
}
}
previousNumber = currentNumber;

View File

@ -4,7 +4,7 @@
#ifndef DAY02_H
#define DAY02_H
#include <string>
#include <vector>
class day02
@ -12,7 +12,7 @@ class day02
public:
static void Calculate();
static bool IsSafe(const std::string &line);
static bool IsSafe(const std::vector<int>& numbers,bool secondPass);
static int SafetyChecks(int current, int previous, bool increasing, bool decreasing);
};