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
|
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_EXAMPLE(2017, Day02, ExampleInput, 1, 18);
|
||||||
REGISTER_TEST(2017, Day02, Input, 1, 0);
|
REGISTER_TEST(2017, Day02, Input, 1, 48357);
|
||||||
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 2, 0);
|
REGISTER_TEST_EXAMPLE(2017, Day02, ExampleInput, 2, 9);
|
||||||
REGISTER_TEST(2017, Day02, Input, 2, 0);
|
REGISTER_TEST(2017, Day02, Input, 2, 351);
|
||||||
|
|
||||||
READ_INPUT(input)
|
READ_INPUT(input)
|
||||||
{
|
{
|
||||||
std::vector<int> vec;
|
std::vector<std::vector<int>> vec;
|
||||||
std::string str;
|
std::string str;
|
||||||
while (getline(input, 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;
|
return vec;
|
||||||
}
|
}
|
||||||
|
|
||||||
OUTPUT1(input)
|
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)
|
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