From d9a1a2c7cc84d93914f249fa3f14a8876d8d5405 Mon Sep 17 00:00:00 2001 From: Blizzard Finnegan Date: Mon, 6 Dec 2021 15:52:37 -0500 Subject: [PATCH] Begin Day 3 Part 2 --- day3/day3Part2.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) 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; +}