From b1a4398782783c545f248be0162a4c7fed9e0a6f Mon Sep 17 00:00:00 2001 From: David Vereb Date: Thu, 8 Dec 2022 08:42:07 -0500 Subject: [PATCH] Added day 6 (two programs. had to rewrite for the second problem). Added starter files. --- 2022/6/Makefile | 6 +++++ 2022/6/b.out | Bin 0 -> 121640 bytes 2022/6/data.txt | 1 + 2022/6/main.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++ 2022/6/main2.cpp | 52 +++++++++++++++++++++++++++++++++++++++ 2022/starter/Makefile | 2 ++ 2022/starter/main.cpp | 29 ++++++++++++++++++++++ 7 files changed, 146 insertions(+) create mode 100644 2022/6/Makefile create mode 100755 2022/6/b.out create mode 100644 2022/6/data.txt create mode 100644 2022/6/main.cpp create mode 100644 2022/6/main2.cpp create mode 100644 2022/starter/Makefile create mode 100644 2022/starter/main.cpp diff --git a/2022/6/Makefile b/2022/6/Makefile new file mode 100644 index 0000000..385fff6 --- /dev/null +++ b/2022/6/Makefile @@ -0,0 +1,6 @@ +all: a.out b.out +a.out: main.cpp + clang++ -std=c++2b -g -O0 main.cpp + +b.out: main2.cpp + clang++ -std=c++2b -g -O0 main2.cpp -o b.out diff --git a/2022/6/b.out b/2022/6/b.out new file mode 100755 index 0000000000000000000000000000000000000000..0f2743244ce4aef529372f1cfc3198e5ba450d1b GIT binary patch literal 121640 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 cY*4ScKgHn-`Evf>{0;3=_M!TJMX%2P0}$zK +#include +#include +#include +#include +#include + +bool Unique(const std::deque &buf) +{ + std::set s; + for(const char &ch : buf) + s.insert(ch); + return (s.size() == 4); +} + +int main() +{ + std::ifstream ifs("data.txt"); + if(!ifs.is_open()) + { + std::cerr << "Missing data.txt." << std::endl; + return -1; + } + + for(std::string line; std::getline(ifs, line); ) + { + if(line == "") + continue; + + std::deque buf; + + int idx = 0; + for(const char &ch : line) + { + ++idx; + buf.push_back(ch); + if(buf.size() >= 4) + { + while(buf.size() > 4) + buf.pop_front(); + + if(Unique(buf)) + { + std::cout << "At index " << idx << ": "; + for(const char &ch : buf) + std::cout << ch; + std::cout << std::endl; + + break; + } + } + } + } + + return 0; +} diff --git a/2022/6/main2.cpp b/2022/6/main2.cpp new file mode 100644 index 0000000..0fa768e --- /dev/null +++ b/2022/6/main2.cpp @@ -0,0 +1,52 @@ +#include +#include +#include +#include + +int main() +{ + std::ifstream ifs("data.txt"); + if(!ifs.is_open()) + { + std::cerr << "Missing data.txt." << std::endl; + return -1; + } + + for(std::string line; std::getline(ifs, line); ) + { + if(line == "") + continue; + + std::vector buf; + + int idx = 0; + for(const char &ch : line) + { + ++idx; + + // clear out from beginning up until this character is found: + auto i = std::find(buf.begin(), buf.end(), ch); + if(i != buf.end()) + buf.erase(buf.begin(), i+1); + + buf.push_back(ch); + + if(buf.size() == 4) + { + std::cout << "Start-of-Packet at index " << idx << ": "; + for(const char &ch : buf) + std::cout << ch; + std::cout << std::endl; + } + else if(buf.size() == 14) + { + std::cout << "Start-of-Message at index " << idx << ": "; + for(const char &ch : buf) + std::cout << ch; + std::cout << std::endl; + } + } + } + + return 0; +} diff --git a/2022/starter/Makefile b/2022/starter/Makefile new file mode 100644 index 0000000..638e325 --- /dev/null +++ b/2022/starter/Makefile @@ -0,0 +1,2 @@ +a.out: main.cpp + clang++ -std=c++2b -g -O0 main.cpp diff --git a/2022/starter/main.cpp b/2022/starter/main.cpp new file mode 100644 index 0000000..a43dc5e --- /dev/null +++ b/2022/starter/main.cpp @@ -0,0 +1,29 @@ +#include +#include +#include +#include +#include + +int main() +{ + std::ifstream ifs("data.txt"); + if(!ifs.is_open()) + { + std::cerr << "Missing data.txt." << std::endl; + return -1; + } + + unsigned long total = 0; + unsigned long total_pt2 = 0; + + for(std::string line; std::getline(ifs, line); ) + { + if(line == "") + continue; + } + + std::cout << " Total: " << total << std::endl; + std::cout << "PT2 Total: " << total_pt2 << std::endl; + + return 0; +}