diff --git a/day3/day3Part2.cpp b/day3/day3Part2.cpp index e69de29..0474853 100644 --- a/day3/day3Part2.cpp +++ b/day3/day3Part2.cpp @@ -0,0 +1,42 @@ +#include +#include +#include +using namespace std; + +int main (void) +{ + char currentLine[12]; + int bitTrue[12] = {}; + int bitFalse[12] = {}; + int gammaRateBin[12] = {}; + int epsilonRateBin[12] = {}; + int gammaRateDec = 0; + int epsilonRateDec = 0; + int powerConsumption; + ifstream readFile ("data/input.txt", ios::in); + + while(readFile >> currentLine) + { + for(int i=0;i<12;i++) + { + if(currentLine[i] == '0') bitFalse[i]++; + else if(currentLine[i] == '1') bitTrue[i]++; + else cout << "Error!!!"; + } + } + + for(int i=0;i<12;i++) + { + if(bitTrue[i] > bitFalse[i]) gammaRateBin[i] = 1; + else epsilonRateBin[i] = 1; + } + + for(int i=0;i<12;i++) + { + gammaRateDec += gammaRateBin[i] * pow(2,11-i); + epsilonRateDec += epsilonRateBin[i] * pow(2,11-i); + } + powerConsumption = gammaRateDec * epsilonRateDec; + cout << "\nPower Consumption: " << powerConsumption; + return 0; +}