From 6a74157ed3ca943327696b44923963d647fa8501 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Thu, 21 Dec 2023 23:43:55 -0600 Subject: [PATCH] feat: solve part 1 --- 15/LensLibrary/Program.cs | 48 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/15/LensLibrary/Program.cs b/15/LensLibrary/Program.cs index 79221d8..9f41903 100644 --- a/15/LensLibrary/Program.cs +++ b/15/LensLibrary/Program.cs @@ -1,9 +1,53 @@ -namespace LensLibrary; +using System.Diagnostics; + +namespace LensLibrary; public class Program { public static async Task Main(string[] args) { - return await Task.FromResult(0); + if (args.Length is 0) + { + Console.WriteLine("Please provide a path to the input file."); + return -1; + } + + if (File.Exists(args[0]) is false) + { + Console.WriteLine("The provided file does not exist."); + return -2; + } + + var input = await File.ReadAllTextAsync(args[0]); + var steps = input.Split( + ',', + StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries + ); + + var stopwatch = new Stopwatch(); + stopwatch.Start(); + + var total = 0; + + foreach (var step in steps) + { + var stepValue = 0; + + foreach (var character in step) + { + var ascii = (int)character; + stepValue += ascii; + stepValue *= 17; + stepValue %= 256; + } + + total += stepValue; + } + + stopwatch.Stop(); + + Console.WriteLine($"The total is {total}. ({stopwatch.ElapsedMilliseconds}ms)"); + + return total; } } \ No newline at end of file