49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
|
using System;
|
|||
|
using System.IO;
|
|||
|
|
|||
|
namespace AOC2017
|
|||
|
{
|
|||
|
class BScottDay1 : BScottSolution
|
|||
|
{
|
|||
|
public override string Name => "Day 1: Inverse Captcha";
|
|||
|
|
|||
|
public override void Run()
|
|||
|
{
|
|||
|
string input = "1122";
|
|||
|
Console.WriteLine($"Example 1: {CalculateSumPart1(input)}");
|
|||
|
|
|||
|
input = "1111";
|
|||
|
Console.WriteLine($"Example 2: {CalculateSumPart1(input)}");
|
|||
|
|
|||
|
input = "1234";
|
|||
|
Console.WriteLine($"Example 3: {CalculateSumPart1(input)}");
|
|||
|
|
|||
|
input = "91212129";
|
|||
|
Console.WriteLine($"Example 4: {CalculateSumPart1(input)}");
|
|||
|
|
|||
|
input = File.ReadAllText("BScottDay1.txt");
|
|||
|
Console.WriteLine($"Part 1 Answer: {CalculateSumPart1(input)}");
|
|||
|
Console.WriteLine($"Part 2 Answer: {CalculateSumPart2(input)}");
|
|||
|
}
|
|||
|
|
|||
|
static long CalculateSumPart1(string input)
|
|||
|
{
|
|||
|
long sum = 0;
|
|||
|
for (int i = 0; i < input.Length; i++)
|
|||
|
if (input[i] == input[(i + 1) % input.Length])
|
|||
|
sum += int.Parse(input[i].ToString());
|
|||
|
return sum;
|
|||
|
}
|
|||
|
|
|||
|
static long CalculateSumPart2(string input)
|
|||
|
{
|
|||
|
long sum = 0;
|
|||
|
int step = input.Length / 2;
|
|||
|
for (int i = 0; i < input.Length; i++)
|
|||
|
if (input[i] == input[(i + step) % input.Length])
|
|||
|
sum += int.Parse(input[i].ToString());
|
|||
|
return sum;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|