Skip to content

Instantly share code, notes, and snippets.

@csuzw
Last active December 4, 2017 09:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save csuzw/8d9b04b3d32765d40b2f659c267f00ba to your computer and use it in GitHub Desktop.
Save csuzw/8d9b04b3d32765d40b2f659c267f00ba to your computer and use it in GitHub Desktop.
Advent of Code 2017 Day 2
int CorruptionChecksumPartOne(int[][] input)
{
return input.Sum(r =>
{
(var max, var min) = r.Aggregate((max: int.MinValue, min: int.MaxValue), (acc, i) => (i > acc.max ? i : acc.max, i < acc.min ? i : acc.min));
return max - min;
});
}
int CorruptionChecksumPartTwo(int[][] input)
{
return input.Sum(r =>
{
(var hi, var lo) = r.Pairs().First(i => (i.hi % i.lo) == 0);
return hi / lo;
});
}
public static class Extensions
{
public static IEnumerable<(int hi, int lo)> Pairs(this int[] array)
{
foreach (var i in array)
{
foreach (var j in array)
{
if (i > j) yield return (i, j);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment