2022-12-03 05:55:49 +00:00
|
|
|
namespace AOC2016;
|
2022-11-11 18:42:42 +00:00
|
|
|
|
|
|
|
/// <summary>
|
2022-12-03 05:41:38 +00:00
|
|
|
/// Day 6: <a href="https://adventofcode.com/2016/day/6"/>
|
2022-11-11 18:42:42 +00:00
|
|
|
/// </summary>
|
2023-11-25 18:46:47 +00:00
|
|
|
public sealed class Day06() : Day(2016, 6, "Signals and Noise")
|
2022-11-11 18:42:42 +00:00
|
|
|
{
|
2023-11-26 02:05:01 +00:00
|
|
|
private List<string>? _input;
|
2023-11-25 23:10:12 +00:00
|
|
|
|
2023-12-01 07:30:47 +00:00
|
|
|
public override void ProcessInput() => _input = Input.ToList();
|
2022-11-11 18:42:42 +00:00
|
|
|
|
2023-11-25 23:10:12 +00:00
|
|
|
public override object Part1()
|
|
|
|
{
|
2023-11-26 02:05:01 +00:00
|
|
|
var answer = new char[_input![0].Length];
|
2023-11-25 23:10:12 +00:00
|
|
|
|
|
|
|
for (var i = 0; i < _input[0].Length; i++)
|
|
|
|
{
|
|
|
|
answer[i] = _input
|
|
|
|
.Select(l => l[i])
|
|
|
|
.GroupBy(c => c)
|
|
|
|
.OrderByDescending(g => g.Count())
|
|
|
|
.Select(g => g.Key)
|
|
|
|
.First();
|
|
|
|
}
|
|
|
|
|
|
|
|
return new string(answer);
|
|
|
|
}
|
2022-11-11 18:42:42 +00:00
|
|
|
|
2023-11-25 23:10:12 +00:00
|
|
|
public override object Part2()
|
|
|
|
{
|
2023-11-26 02:05:01 +00:00
|
|
|
var answer = new char[_input![0].Length];
|
2023-11-25 23:10:12 +00:00
|
|
|
|
|
|
|
for (var i = 0; i < _input[0].Length; i++)
|
|
|
|
{
|
|
|
|
answer[i] = _input
|
|
|
|
.Select(l => l[i])
|
|
|
|
.GroupBy(c => c)
|
|
|
|
.OrderBy(g => g.Count())
|
|
|
|
.Select(g => g.Key)
|
|
|
|
.First();
|
|
|
|
}
|
|
|
|
|
|
|
|
return new string(answer);
|
|
|
|
}
|
|
|
|
}
|