Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include "Header.h"
- using namespace std;
- class charCount {
- public:
- char cInput;
- size_t cCount;
- charCount(char input, size_t inputC) {
- this->cInput = input;
- this->cCount = inputC;
- }
- };
- class dataParse {
- public:
- string sortedUni;
- string testSum = "";
- string checkSum;
- int roomNumber;
- string data;
- string uni;
- vector <charCount> cC;
- dataParse(string input) {
- this->checkSum = input.substr(input.length() - 6, 5);
- this->roomNumber = String2Int(input.substr(input.length() - 10, 3));
- this->data = input.substr(0, input.length() - 11);
- }
- dataParse() {
- }
- };
- int newCounter = 0;
- vector <string> dataFile;
- vector <string> testFile;
- vector <dataParse> dataClass;
- vector <charCount> charHolder;
- void main() {
- dataFile = getInputFile("C:\\temp\\AOC\\day4Input.txt");
- for (int i = 0; i < dataFile.size(); i++) {
- dataClass.push_back(dataFile[i]);
- }
- for (int i = 0; i < dataClass.size(); i++) {
- dataClass[i].uni = Uni_str(dataClass[i].data);
- sort(dataClass[i].uni.begin(), dataClass[i].uni.end());
- }
- for (int i = 0; i < dataClass.size(); i++) {
- dataParse *Ptr = new dataParse();
- *Ptr = dataClass[i];
- for (int b = 0; b < Ptr->uni.length(); b++) {
- size_t n = std::count(Ptr->data.begin(), Ptr->data.end(), Ptr->uni[b]);
- charCount temp(Ptr->uni[b], n);
- charHolder.push_back(temp);
- }
- dataClass[i].cC = charHolder;
- charHolder.clear();
- }
- for (int i = 0; i < dataClass.size(); i++) {
- sort(dataClass[i].cC.begin(), dataClass[i].cC.end(), [](const charCount& lhs, const charCount& rhs)
- {
- return lhs.cCount > rhs.cCount;
- });
- }
- for (int i = 0; i < dataClass.size(); i++) {
- for (int c = 0; c < 5; c++) {
- if (dataClass[i].cC[c].cInput == ' ' || dataClass[i].cC[c].cInput == '-') {
- dataClass[i].cC.erase(dataClass[i].cC.begin() + c);
- }
- dataClass[i].testSum = dataClass[i].testSum + dataClass[i].cC[c].cInput;
- }
- //cout << endl;
- //cout << dataClass[i].checkSum << endl;
- //cout << dataClass[i].testSum << endl;
- if (dataClass[i].testSum == dataClass[i].checkSum) {
- newCounter = newCounter + dataClass[i].roomNumber;
- }
- }
- cout << newCounter << endl;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment