summaryrefslogtreecommitdiff
path: root/2022/Day3/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to '2022/Day3/main.cpp')
-rw-r--r--2022/Day3/main.cpp72
1 files changed, 0 insertions, 72 deletions
diff --git a/2022/Day3/main.cpp b/2022/Day3/main.cpp
deleted file mode 100644
index 0be9a35..0000000
--- a/2022/Day3/main.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-#include<bits/stdc++.h>
-using namespace std;
-
-using vi = vector<int>;
-
-#define all(x) (x).begin(), (x).end()
-#define rall(x) (x).rbegin(), (x).rend()
-
-void part1() {
- string s;
- int sum = 0;
- while(cin >> s) {
- vector<bool> vis(54, 0);
- string l = s.substr(0, s.size() / 2);
- string r = s.substr(s.size() / 2, s.size());
- for (int i = 0; i < s.size() / 2; i++) {
- if (count(all(r), l[i])) {
- if (isupper(l[i]) && !vis[l[i] - 'A' + 27]) {
- sum += l[i] - 'A' + 27;
- vis[l[i] - 'A' + 27] = 1;
- } else if (islower(l[i]) && !vis[l[i]- 'a' + 1]) {
- sum += l[i] - 'a' + 1;
- vis[l[i] - 'a' + 1] = 1;
- }
- }
- }
- }
- cout << sum << '\n';
-}
-
-void getFrqThreeAndSum(string s, int &sum) {
- vi fq(54, 0);
- for (auto x : s) {
- if(isupper(x)) {
- fq[x - 'A' + 27]++;
- } else {
- fq[x - 'a' + 1]++;
- }
- }
- for (int i = 0; i < fq.size(); i++) {
- if (fq[i] == 3) {
- sum += i;
- }
- }
-}
-
-void part2() {
- string s;
- int sum = 0;
- vector<string> v;
- while(cin >> s) {
- sort(all(s));
- auto res = unique(all(s));
- v.push_back(string(s.begin(), res));
- }
- string tmp = "";
- int cnt = 1;
- for (int i = 0; i < v.size(); i+=3) {
- tmp = v[i] + v[i + 1] + v[i + 2];
- getFrqThreeAndSum(tmp, sum);
- }
- cout << sum << '\n';
-}
-
-int main () {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- // part1();
- part2();
-}
-
-