Files
Advent2019/Day8/Day8.cs
2019-12-10 18:36:52 -05:00

79 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
namespace Advent
{
public static class Day8
{
public static void Execute()
{
var lines = File.ReadAllLines(@".\Day8\input.txt");
var data = lines[0].ToCharArray();
var index = 0;
var layers = new List<char[]>();
while (index < data.Length)
{
var layer = data[index..(index + 25 * 6)];
layers.Add(layer);
index += (25 * 6);
}
/*
var minimumZeroCount = int.MaxValue;
var minimumZeroLayer = 0;
var layerIndex = 0;
foreach (var layer in layers)
{
var currentZeroCount = layer.Count(c => c == '0');
if (currentZeroCount < minimumZeroCount)
{
minimumZeroCount = currentZeroCount;
minimumZeroLayer = layerIndex;
}
layerIndex++;
}
Console.WriteLine(layers[minimumZeroLayer].Count(c => c == '1') * layers[minimumZeroLayer].Count(c => c == '2'));
*/
var finalImage = new char[25 * 6];
var startLayer = data.Length / (25 * 6) - 1;
finalImage = layers[startLayer];
for (var layerIndex = startLayer - 1; layerIndex >= 0; layerIndex--)
{
var layer = layers[layerIndex];
for (var i = 0; i < layer.Length; i++)
{
if (layer[i] != '2')
finalImage[i] = layer[i];
}
}
var outputIndex = 1;
foreach (var c in finalImage)
{
Console.Write(c == '0' ? ' ' : '*');
if (outputIndex % 25 == 0)
Console.WriteLine();
outputIndex++;
}
}
}
}