aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2024-04-28 14:02:59 +0200
committerThomas Schmucker <ts@its1.de>2024-04-28 14:02:59 +0200
commitb14dce43889ea4c9f0e2163f0aa5a0c3ca0a1377 (patch)
treed9bf46bd2fd0270f4226368e815b705b8cc9be97
parent92e510305a8cb6c92bc39e601424c60c698e4adf (diff)
downloadadvent-of-code-b14dce43889ea4c9f0e2163f0aa5a0c3ca0a1377.tar.gz
advent-of-code-b14dce43889ea4c9f0e2163f0aa5a0c3ca0a1377.tar.bz2
advent-of-code-b14dce43889ea4c9f0e2163f0aa5a0c3ca0a1377.zip
day 6, advent of code 2022
-rw-r--r--2022/src/day06.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/2022/src/day06.cpp b/2022/src/day06.cpp
new file mode 100644
index 0000000..44d5dc2
--- /dev/null
+++ b/2022/src/day06.cpp
@@ -0,0 +1,36 @@
1#include <fstream>
2#include <iostream>
3#include <numeric>
4#include <sstream>
5#include <string>
6#include <vector>
7#include <set>
8using namespace std;
9
10string
11read_file(string_view filename)
12{
13 fstream input{ filename };
14 return { istreambuf_iterator<char>{ input }, {} };
15}
16
17void
18solve(const string& data, size_t length)
19{
20 for ( size_t i = 0; i != data.length() - length; ++i ) {
21 const auto substr = data.substr(i, length);
22 set<char> set(begin(substr), end(substr));
23 if (set.size() == length) {
24 cout << i + length << endl;
25 break;
26 }
27 }
28}
29
30int
31main()
32{
33 const auto data = read_file("data/day06.txt");
34 solve(data, 4);
35 solve(data, 14);
36}