Added older advents
This commit is contained in:
parent
8db2505049
commit
9cf858b860
78 changed files with 13807 additions and 0 deletions
41
advent_of_code_2019/day4/main1.cc
Normal file
41
advent_of_code_2019/day4/main1.cc
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
bool meets_criteria(size_t passwd)
|
||||
{
|
||||
string number = to_string(passwd);
|
||||
|
||||
bool adjacent = false;
|
||||
|
||||
char min = '0';
|
||||
char prev = '1';
|
||||
for (char ch : number)
|
||||
{
|
||||
adjacent = adjacent | (prev == ch);
|
||||
|
||||
if (ch < min)
|
||||
return false;
|
||||
|
||||
min = ch;
|
||||
prev = ch;
|
||||
}
|
||||
|
||||
return adjacent;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
const size_t LOWER = 178416;
|
||||
const size_t UPPER = 676461;
|
||||
|
||||
size_t valid = 0;
|
||||
for (size_t idx = LOWER; idx <= UPPER; ++idx)
|
||||
{
|
||||
if (meets_criteria(idx))
|
||||
++valid;
|
||||
}
|
||||
|
||||
cout << "valid: " << valid << "\n";
|
||||
}
|
||||
62
advent_of_code_2019/day4/main2.cc
Normal file
62
advent_of_code_2019/day4/main2.cc
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
bool meets_criteria(size_t passwd)
|
||||
{
|
||||
string number = to_string(passwd);
|
||||
|
||||
bool adjacent = false;
|
||||
int groupsize = 0;
|
||||
|
||||
char min = '0';
|
||||
char prev = '1';
|
||||
for (char ch : number)
|
||||
{
|
||||
adjacent = adjacent | (prev == ch);
|
||||
|
||||
if (prev == ch)
|
||||
++groupsize;
|
||||
else
|
||||
{
|
||||
if (groupsize > 1 && groupsize % 2 != 0)
|
||||
{
|
||||
cout << "groupsize bounced: " << passwd << "\n";
|
||||
return false; //uneven group
|
||||
}
|
||||
|
||||
prev = ch;
|
||||
groupsize = 1;
|
||||
}
|
||||
|
||||
if (ch < min)
|
||||
return false;
|
||||
|
||||
min = ch;
|
||||
}
|
||||
|
||||
if (groupsize == 1)
|
||||
return adjacent;
|
||||
else if (groupsize % 2 != 0)
|
||||
{
|
||||
cout << "groupsize bounced (end): " << passwd << "\n";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
const size_t LOWER = 178416;
|
||||
const size_t UPPER = 676461;
|
||||
|
||||
size_t valid = 0;
|
||||
for (size_t idx = LOWER; idx <= UPPER; ++idx)
|
||||
{
|
||||
if (meets_criteria(idx))
|
||||
++valid;
|
||||
}
|
||||
|
||||
cout << "valid: " << valid << "\n";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue