Skip to content

Instantly share code, notes, and snippets.

@towc
Created December 18, 2018 17:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save towc/618dba03c91ea46fdde3c554f86f64df to your computer and use it in GitHub Desktop.
Save towc/618dba03c91ea46fdde3c554f86f64df to your computer and use it in GitHub Desktop.
#include <fstream>
#include <iostream>
#include <map>
#include <string>
int main() {
int twos = 0;
int threes = 0;
std::string line;
std::ifstream inFile;
inFile.open("aoc-input-2");
while (inFile >> line) {
std::map<char, int> counts;
for(char& c : line) {
if(counts.count(c) == 0) {
counts[c] = 1;
} else {
++counts[c];
}
}
bool foundTwos = false;
bool foundThrees = false;
auto it = counts.begin();
while(it != counts.end()) {
if (!foundTwos && it->second == 2) {
++twos;
foundTwos = true;
if (foundThrees) break;
} else if (!foundThrees && it->second == 3) {
++threes;
foundThrees = true;
if (foundTwos) break;
}
++it;
}
}
inFile.close();
std::cout << (twos * threes) << std::endl;
}
let twos = 0;
let threes = 0;
const data = require('fs').readFileSync('aoc-input-2', 'utf-8').trim()
.split('\n');
for (const line of data) {
const counts = {};
for(const char of line) {
if (!counts[char]) {
counts[char] = 1;
} else {
++counts[char];
}
}
let foundTwos = false;
let foundThrees = false;
const values = Object.values(counts);
for(const value of values) {
if (!foundTwos && value === 2) {
++twos;
foundTwos = true;
if (foundThrees) break;
} else if (!foundThrees && value === 3) {
++threes;
foundThrees = true;
if (foundTwos) break;
}
}
}
console.log(twos * threes);
uosnxmfkezbojfdgwvrtaqhluy
iosnxmfkazbcopdgnvrtaqhluy
ioanxmfkezbcjpdgwvrjaohluy
uosnxmfkezbcjpjgwvrtaqhlut
imsnxmfkezbcjpugwvataqhluy
ioenxmfkezbcjpdgwvrraqhluz
iosnxmfkezbcjpdgevitnqhluy
iosnxmfkezcccpdgcvrtaqhluy
loinxmfkezbcjpdgwvrtaqhluu
iosnlmfkezbczndgwvrtaqhluy
iosnxmfkezbcjpdgwvrifghluy
iosnuhfkezbcjpugwvrtaqhluy
iosnxmfkezbcwpdgwvrtaihlgy
iosnxzfwuzbcjpdgwvrtaqhluy
hosnxmfjizbcjpdgwvrtaqhluy
iornxmfktzbcjpdgwvrtaqhluo
nosnxmfkdzbcjpdgwvrtaqhlwy
iosnxmfkezbcjpdgwvrtaktluq
ioszxmlkezbcjvdgwvrtaqhluy
ionnxmfkezbcfpdgwvbtaqhluy
iosnxmfkezrcjedgwvrtaqhluq
irsnxmfkezbcjpdqwvrtafhluy
ioshxmzkezbccpdgwvrtaqhluy
iosnxmfkezbrjpdgwvothqhluy
bosnxmfkezbcbpdgwvrtnqhluy
iosnomfkszbcjpcgwvrtaqhluy
iosnxmflezbcjpdgwvrtaqmuuy
iobnxmfkezbcjpdgxvrtaqfluy
ioenxmfvezbcjgdgwvrtaqhluy
iosnxmfkekbcjprgwvrtaqhlty
iosnumfkezbcjpmgwvrtaqhlmy
ionnxufkezbcjpdgwvrqaqhluy
tosnxmfbezbcjpdghvrtaqhluy
iosnxmfktzbcjpogwmrtaqhluy
iosnamfkezbjjpdgtvrtaqhluy
iosnemfkezmcjpdgwvrtaqhlry
losnxmfkezbcjpdxwvrtaqsluy
fomnxmekezbcjpdgwvrtaqhluy
rosnxmfkezbcjzdcwvrtaqhluy
iosngmrkezbcjpdgwvrtaqhduy
iosnxmaaebbcjpdgwvrtaqhluy
xosnxmfkezbcjpdgwvrmrqhluy
iosnxmfkgzbujpdgwhrtaqhluy
iosnxmekecbcjpmgwvrtaqhluy
mesnxmfdezbcjpdgwvrtaqhluy
insnxmbkezbcjpdgwvrtgqhluy
iosyxmfkezbcjpdgwirtavhluy
iosnxmfkezbcjpdgwlvtjqhluy
iosnxmtkezbcjpdgwvjtaqhlut
iosnxmfkezbsjpdhwvrtaqaluy
iosnumfkezbcjpfgwvrtaqhlfy
iosnxmekezbcdpxgwvrtaqhluy
iosnfmfkezbcjpdgavctaqhluy
iosnxmfkezvcjpdgfvrtamhluy
iovnxmfkezbcjpdgzvrtaqhzuy
iosnbmfkuzbcjpdgwvrtaqhlux
iosnxmfkezbcjpdgwvftauhluc
iosmbmfkezbcmpdgwvrtaqhluy
ifsnxmfvezbcjpdgwvrwaqhluy
iosnxmfkezfcjpdgwvrmaqhyuy
iospxmfkezbcjpdkwvytaqhluy
issnxmfkyzbcjpdgwyrtaqhluy
iosnxmfkezbcjpdbwvrtjqhluz
iosnxmfkwzbcjpdgfvrtajhluy
iosnxmfkezbcjndgwvrnaqxluy
iosnxmfkezbcjpdgwvltawwluy
iosnxmfkezbcjpdguvrtwqhtuy
iornxmfkezbcjpdgwertaihluy
iofdxmokezbcjpdgwvrtaqhluy
iosnxmfkezbcjpdgwgrtiqdluy
iosnxmfkenbcjpdgwqrtiqhluy
iosnxmfkezbcjpugwvotcqhluy
iksnxmfkezbcjfdgqvrtaqhluy
iasnxmfkezbcjpdgwvrtaqheuo
iosnxmfkehbcipdgwvrtaqtluy
iosnxifkezbajpdgwvrtaahluy
iosnxmpkezbccpdguvrtaqhluy
ioinxnfkezbcjpdgwvgtaqhluy
gosnxmfkezbcjpdgwvrtvqkluy
iolnxmfcezbcjpdgwvrtaqhlgy
iosnxmfkezbcppdgwortjqhluy
iesnxafkezbcjpdgwvrtayhluy
iqsnxmfxazbcjpdgwvrtaqhluy
cosnxmfkezbcjpdgwvrtkahluy
ioenxmfkezbcjpdgwvrtzqyluy
iosnxmhkwzbcjpdgwvrtabhluy
iosnxmfkezbcjpdtwvrhaqiluy
iisnxmfkezbcvpdwwvrtaqhluy
iosnsmfkeobcjpdgfvrtaqhluy
iwsnxmfkfzbcjpugwvrtaqhluy
iosnxmflezbcjpdgwvrtaspluy
gosnimfkezbcjpdgwvrtjqhluy
iosnxmfkfibcjmdgwvrtaqhluy
iosnxmfkpzbcjpdgwvitaqhwuy
ionnxmfkerbcjpjgwvrtaqhluy
iosnxmfkezecjgdgwvrtaqhljy
iosnxufkezbcjpdguvltaqhluy
vosnzmfkezbcjpdvwvrtaqhluy
iolnxmfkecbcjpdgwvrtaqpluy
iosnxmfkezbcjpdgwortaqhouw
iomnxmfkezbckpdgwvrtaqhluu
iopnymfkezbchpdgwvrtaqhluy
iosnxmfkezhcjpdguvrtaqhnuy
iosfxmfkezecjpdgyvrtaqhluy
iopnxmfkgzbcjpdgwvbtaqhluy
tosnxmffezbcjpdgwvttaqhluy
iosnxmfkpabcjpdywvrtaqhluy
iosrxmfkekbcjpdgwvrtaqrluy
iosnxmokezbcjpdjwvrtaxhluy
iolnxmfkezbccpdgwvetaqhluy
iosnxmfketecjpdgwvrtaqnluy
iosnxmfkxzbtjpdgwvroaqhluy
ioinxmfkezbcjpdqwvrtjqhluy
iosnxmfkqzbcjpdgwvrtaqzluz
iosnxmfklzbcjpdgwwrtaqhluh
iosnxmfkezbcjpdtwvrtmqhlpy
iosnomfqezgcjpdgwvrtaqhluy
iosnxmfkezbcjodgwvutaqhduy
iosnxmfkezbcjppgwertaqhluu
iosnxmfkezbcjqdggvrtaqhluw
iosnxmvkezbcjpdgwvrtlqfluy
icsnwmfkezbcjpdiwvrtaqhluy
iosnxxbkezbhjpdgwvrtaqhluy
ioknxmfkezacjpdgwvrtaqhliy
iosgxmfkezbcjpdgevrtpqhluy
iosnxmfkezbejpdgwlrtaqhldy
iosnxyfkezbcjpdowvrtaqhlur
iosnxmfkezbcjpnjwvrtaqhlvy
iosnxglkezbcjpdvwvrtaqhluy
iosnxmpkezbcjpdgwvrtxqhlub
iosnxsfwezbcjpdgwmrtaqhluy
aosnxmfkezbcjpdgwvrtaqhpwy
iopnxmqkkzbcjpdgwvrtaqhluy
iosnxmfkewbcfpdgwvrtaqmluy
iosnxmfkekbcjpdgwvltawhluy
iosnxmfmezbcjpdgwvitaqtluy
iosnomfkezbcjpggwvrtaqhlly
iobnkmfkezbcjpdywvrtaqhluy
yosnxmfkezbcjydgwvrtarhluy
iosnxifkezbckpdgyvrtaqhluy
iornxmfkezbcjpduwvreaqhluy
ivsfxmfjezbcjpdgwvrtaqhluy
iosnxmfkezbcspdgwartaqhlui
iosnxmfkezbcjpdgasstaqhluy
iosnxmfkezbajpdgwvrtaqmlux
gzsnxmfkezxcjpdgwvrtaqhluy
iosnxmikczbcjpdgwvrtyqhluy
iosnxmgkezbcjvdgwdrtaqhluy
iosnxpfkezbcjpdgwvrbachluy
igsnxmfkezbcjpdgwkrtaqtluy
posnxmfkfzbcjpdgwvrpaqhluy
iosnxmfkezbhjtdgwvrtaqhsuy
iosfxmfkezbcjpdwwvrtaqvluy
iosnxmfkehecjpdgwvrtaqoluy
iasnxmfkezbckpdgfvrtaqhluy
iosnxmfkezbwjpdggvrtaqhlmy
iosnxmfkezbcjpdgwvrkaqhbun
iosnxmikezbcjpdgwvrtaqhlnt
iosnxmfiazbcjpdgwvetaqhluy
iosnxmfkczbcjpfgwvrnaqhluy
iosnxmfkezkcjpdgsvrqaqhluy
iosnxmfkezbcspdgwvrtaqhxuc
iosnxmfdezbcjpdgwzrteqhluy
qosnxmrkezbcjpdgwvrtaqhlpy
iosnxmfkpabcjpdywvrtawhluy
ojsnxmfkezbcjpdgwvrtiqhluy
iosrxmfkezbcjpdgdvrtaqhlmy
iosnxmfkezbcnqdgwvrtayhluy
ionnxmfkezbcjpdgwvrsaehluy
iosnxmfkezbcjpdgwvrtmqhpuk
ifsnxmfkezbcjpdpwvrtaqhluf
insnxmfkezbcjpdgwrrtaqhmuy
iosnxmfxezbcjpdjwvrfaqhluy
iojnxmbkezccjpdgwvrtaqhluy
iosnomlkezbcjpdgwvotaqhluy
iosnamfkezbcjpdgwvrhqqhluy
iksnxmfkezbbjrdgwvrtaqhluy
iosnfmfkezbcjpdgwvrtaqhyay
iosnxmzkezbcjpdayvrtaqhluy
iosnxmfkezbcwpdgwbrtaqhlut
iosnxmfkezccjpdgivrtaqhbuy
iosuxmfkezbcjgdgwvrtaqhvuy
ipsnxmfkezbcjpaiwvrtaqhluy
iisnxmfkezbcjpdgpvrtaqqluy
ihsnxmfkezbcspdgwvrtahhluy
imsnxmfkezbcjpdgwvrtaqhkly
josnxmfkezbpjpdgwvttaqhluy
bosnxyfkezmcjpdgwvrtaqhluy
iosnxmfkezbcjpkgwvrtkqhjuy
iosnxmfkezbcjpdgwfrgaqfluy
rosnxmfkqzbcjpdgwvxtaqhluy
iosnxmfkezbcjpdgwlrwaqhluu
yysnxmfkezbcjpdgwvrtaxhluy
iosnxmpkezbcjldgwvrtaqoluy
gosnxmfkezrcjpdgwvrtarhluy
iosnxmfrezbcjrdmwvrtaqhluy
iosnxmfkekbcjpdgpvrtaqhyuy
iosbemfkezbcjpdgwdrtaqhluy
iosnxmfkezucjpdgwvatamhluy
ioanfmfkwzbcjpdgwvrtaqhluy
iosnxphkezbcjpdgwvrtaqhlly
ioynxmfkezbcjvbgwvrtaqhluy
iosnnmfkwzbcjpdgwvrtaqbluy
iosnxmfjezbcjpkgwtrtaqhluy
iosexmfkezbcjpdgwvrtmshluy
irsnxmwkezbcjpdgwvotaqhluy
iosnxmfkezpcjpdgwvrlaqkluy
iosnxmfkezbcjpwgwvroaqkluy
iosnxmfkizbcjpdgwvrtaqxlay
ioszxmfkezbcjpdgwertrqhluy
iosnxmfkczscjpdgwvrtcqhluy
iosnxmfkedbcjpdgwirtaqhliy
iosgxmfpezbcjpdgwvvtaqhluy
iownxmfiezbcjpdgwvrtajhluy
iosnxmfkezbejudgwvrqaqhluy
iomnpmfkezbcjpdgwvwtaqhluy
ioshxmfkecbcjpdgwfrtaqhluy
iosnxmfkezmcjpdgwzrtaqkluy
iownxdfkezdcjpdgwvrtaqhluy
iosnxmfjezbcjpdgwrotaqhluy
roknxmfkezbcjpdgwxrtaqhluy
iosnxmfkeibcjpdgovrtaqhloy
ifsnxmfkelbcjpdgwvrcaqhluy
iosnamfuezbcjpdwwvrtaqhluy
rssnxmfkeebcjpdgwvrtaqhluy
iosnomfkjzbcjpdgwvrtaqhlun
iosnxmfuezbcjpdgwfjtaqhluy
iosnxzfkezbcjpdewvrtaqhlfy
iosnxmfkezbcjpdgwvrtzqhlgr
iosixmfkezbcjpdgwvrkaqhlut
issnxmfkezbdjpdpwvrtaqhluy
iosnxmfrezbcjpdgwkrtaghluy
iysnxmfkezbcjpdgwrrtmqhluy
iosoxmfkezbcjpdgwjrtaqhlua
eosnxmfkezvcjpdgwvztaqhluy
iosmxmckezbcjpdgwvrtaqhlay
iosnxmfkezbcjodgwvrtaqhlma
josnxwftezbcjpdgwvrtaqhluy
iosnxjfkepbcjpdgwvrtaqhlsy
iosnnmfkezbcjpdgwvriaqhnuy
iosnxofkezbcupdgwvrtayhluy
iosnxmfkezbcjpddwvroaqhluz
iosnomfkezbcapdhwvrtaqhluy
iosixmfkezycjpdgwvrtaqhruy
iosnwefkezbcjpdgwvrtaqcluy
iosnxmfkvzbcbpdgwvrhaqhluy
insnxmfkezbczpdgwvrtajhluy
iosnxrfkelbcjpdgwvrtaqhluf
iosnxmfkezbcjpdgwsrtaqhzud
iosnxmfyvzbcjpdgwyrtaqhluy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment