diff options
author | Ben Harris <ben@tilde.team> | 2021-12-03 01:05:45 -0500 |
---|---|---|
committer | Ben Harris <ben@tilde.team> | 2021-12-03 01:05:45 -0500 |
commit | 15cf1a6a5650efb644ee9edfb4327736daef24f6 (patch) | |
tree | 5fa0ace67237494b8c301b532703cc589bff120f /aoc2021/Day03.cs | |
parent | 437ad3ecfa330b53af289785758eabf807c62e37 (diff) |
day 3 part 1
Diffstat (limited to 'aoc2021/Day03.cs')
-rw-r--r-- | aoc2021/Day03.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/aoc2021/Day03.cs b/aoc2021/Day03.cs new file mode 100644 index 0000000..a9e5c38 --- /dev/null +++ b/aoc2021/Day03.cs @@ -0,0 +1,38 @@ +namespace aoc2021; + +/// <summary> +/// Day 3: <see href="https://adventofcode.com/2021/day/3"/> +/// </summary> +public sealed class Day03 : Day +{ + private readonly List<string> _report; + + public Day03() : base(3, "Binary Diagnostic") + { + _report = Input.ToList(); + } + + public override string Part1() + { + var l = _report.Count / 2; + var g = new StringBuilder(); + var e = new StringBuilder(); + + foreach (var i in Enumerable.Range(0, _report[0].Length)) + { + var ones = _report.Select(r => r[i]).Count(c => c == '1'); + g.Append(ones > l ? '1' : '0'); + e.Append(ones > l ? '0' : '1'); + } + + var gamma = Convert.ToInt32(g.ToString(), 2); + var epsilon = Convert.ToInt32(e.ToString(), 2); + + return $"{gamma * epsilon}"; + } + + public override string Part2() + { + return ""; + } +} |