diff --git a/res/2017/day01/test_input.txt b/res/2017/day01/test_input.txt index e69de29..3d4db09 100644 --- a/res/2017/day01/test_input.txt +++ b/res/2017/day01/test_input.txt @@ -0,0 +1 @@ +123123 diff --git a/src/2017/Day01.cpp b/src/2017/Day01.cpp index f9fefd2..b29f007 100644 --- a/src/2017/Day01.cpp +++ b/src/2017/Day01.cpp @@ -2,30 +2,38 @@ namespace y2017::day01 { - REGISTER_DAY(2017, Day01, std::vector, int); + REGISTER_DAY(2017, Day01, std::string, int); REGISTER_TEST_EXAMPLE(2017, Day01, ExampleInput, 1, 0); - REGISTER_TEST(2017, Day01, Input, 1, 0); - REGISTER_TEST_EXAMPLE(2017, Day01, ExampleInput, 2, 0); - REGISTER_TEST(2017, Day01, Input, 2, 0); + REGISTER_TEST(2017, Day01, Input, 1, 1089); + REGISTER_TEST_EXAMPLE(2017, Day01, ExampleInput, 2, 12); + REGISTER_TEST(2017, Day01, Input, 2, 1156); READ_INPUT(input) { - std::vector vec; std::string str; - while (getline(input, str)) + getline(input, str); + return str; + } + + int Solve(const std::string& str, int offset) + { + int count = 0; + for (int i = 0; i < str.size(); i++) { + if (str[i] == str[(i + offset) % str.size()]) + count += str[i] - '0'; } - return vec; + return count; } OUTPUT1(input) { - return 0; + return Solve(input, 1); } OUTPUT2(input) { - return 0; + return Solve(input, input.size() / 2); } }