Add solution for 2017 Day 2
This commit is contained in:
1 parent
bcf645a6c0
commit
d0bd08c596
2 files changed
+47
-8
No files matched your search
@@ -0,0 +1,3 @@
|
||||
5 9 2 8
|
||||
9 4 7 3
|
||||
3 8 6 5
|
||||
+44
-8
@@ -2,30 +2,66 @@
|
||||
|
||||
namespace y2017::day02
|
||||
{
|
||||
REGISTER_DAY(2017, Day02, std::vector<int>, int);
|
||||
REGISTER_DAY(2017, Day02, std::vector<std::vector<int>>, int);
|
||||
|
||||
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 1, 0);
|
||||
REGISTER_TEST(2017, Day02, Input, 1, 0);
|
||||
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 2, 0);
|
||||
REGISTER_TEST(2017, Day02, Input, 2, 0);
|
||||
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 1, 18);
|
||||
REGISTER_TEST(2017, Day02, Input, 1, 48357);
|
||||
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 2, 9);
|
||||
REGISTER_TEST(2017, Day02, Input, 2, 351);
|
||||
|
||||
READ_INPUT(input)
|
||||
{
|
||||
std::vector<int> vec;
|
||||
std::vector<std::vector<int>> vec;
|
||||
std::string str;
|
||||
while (getline(input, str))
|
||||
{
|
||||
std::vector<int> vec2;
|
||||
std::stringstream ss{str};
|
||||
int i;
|
||||
while (ss >> i)
|
||||
{
|
||||
vec2.emplace_back(i);
|
||||
}
|
||||
vec.emplace_back(vec2);
|
||||
}
|
||||
return vec;
|
||||
}
|
||||
|
||||
OUTPUT1(input)
|
||||
{
|
||||
return 0;
|
||||
int checksum = 0;
|
||||
for (const auto& vec : input)
|
||||
{
|
||||
int min = std::numeric_limits<int>::max();
|
||||
int max = 0;
|
||||
for (const auto& i : vec)
|
||||
{
|
||||
min = std::min(min, i);
|
||||
max = std::max(max, i);
|
||||
}
|
||||
checksum += max - min;
|
||||
}
|
||||
return checksum;
|
||||
}
|
||||
|
||||
OUTPUT2(input)
|
||||
{
|
||||
return 0;
|
||||
int checksum = 0;
|
||||
for (int i = 0; i < input.size(); i++)
|
||||
{
|
||||
std::vector<int> divisible;
|
||||
for (int j = 0; j < input[i].size(); j++)
|
||||
{
|
||||
for (int k = 0; k < input[i].size(); k++)
|
||||
{
|
||||
if (j == k)
|
||||
continue;
|
||||
|
||||
if (input[i][j] % input[i][k] == 0)
|
||||
checksum += input[i][j] / input[i][k];
|
||||
}
|
||||
}
|
||||
}
|
||||
return checksum;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user