Clean up day 15

master
Nick Krichevsky 2020-12-15 01:34:38 -05:00
parent 5131db668b
commit 501ae2acc4
1 changed files with 3 additions and 11 deletions

View File

@ -1,19 +1,11 @@
#include <folly/String.h> #include <folly/String.h>
#include <algorithm>
#include <charconv>
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
#include <map> #include <map>
#include <numeric> #include <string>
#include <regex>
#include <set>
#include <vector> #include <vector>
constexpr char IGNORE_CHAR = 'X';
constexpr auto MASK_PATTERN = R"(mask = ([X0-9]+))";
constexpr auto MEM_PATTERN = R"(mem\[(\d+)\] = (\d+))";
std::vector<std::string> readInput(const std::string &filename) { std::vector<std::string> readInput(const std::string &filename) {
std::vector<std::string> input; std::vector<std::string> input;
std::string line; std::string line;
@ -38,7 +30,7 @@ std::vector<int> parseStartingNumbers(const std::vector<std::string> &input) {
return startingNumbers; return startingNumbers;
} }
int solve(const std::vector<int> &startingNumbers, int max_n) { int solve(const std::vector<int> &startingNumbers, int num_turns) {
std::unordered_map<int, int> turnSpoken; std::unordered_map<int, int> turnSpoken;
int lastNumber = startingNumbers.back(); int lastNumber = startingNumbers.back();
// Skip past the starting numbers< put them at the proper place // Skip past the starting numbers< put them at the proper place
@ -47,7 +39,7 @@ int solve(const std::vector<int> &startingNumbers, int max_n) {
} }
// Keep passing on until the right n // Keep passing on until the right n
for (int turn = startingNumbers.size() + 1; turn <= max_n; turn++) { for (int turn = startingNumbers.size() + 1; turn <= num_turns; turn++) {
int number = 0; int number = 0;
if (turnSpoken.find(lastNumber) != turnSpoken.end()) { if (turnSpoken.find(lastNumber) != turnSpoken.end()) {
number = (turn - 1) - turnSpoken.at(lastNumber); number = (turn - 1) - turnSpoken.at(lastNumber);