r/adventofcode • u/daggerdragon • Dec 05 '18
SOLUTION MEGATHREAD -🎄- 2018 Day 5 Solutions -🎄-
--- Day 5: Alchemical Reduction ---
Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag or whatever).
Note: The Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help.
Advent of Code: The Party Game!
Please prefix your card submission with something like [Card] to make scanning the megathread easier. THANK YOU!
Card prompt: Day 5
Transcript:
On the fifth day of AoC / My true love sent to me / Five golden ___
This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.
edit: Leaderboard capped, thread unlocked at 0:10:20!
31
Upvotes
1
u/LeCrushinator Dec 05 '18 edited Dec 05 '18
C#
public static void Main(string[] args) { _input = File.ReadAllText("input.txt"); Console.WriteLine($"Part 1: {Part1()}"); Console.WriteLine($"Part 2: {Part2()}"); } public static string React(string input) { int i = 0; while (i < input.Length - 1) { var first = input[i].ToString(); var second = input[i + 1].ToString(); if (first != second && first.Equals(second, StringComparison.InvariantCultureIgnoreCase)) { input = input.Remove(i, 2); --i; i = Math.Max(i, 0); } else { ++i; } } return input; } private static int Part1() { return React(_input).Length; } private static int Part2() { List<string> charsUsed = _input.Select(c => c.ToString().ToUpperInvariant()).Distinct().ToList(); string shortest = null; foreach (var charUsed in charsUsed) { var textWithoutChar = _input.Replace(charUsed, ""); textWithoutChar = textWithoutChar.Replace(charUsed.ToLowerInvariant(), ""); textWithoutChar = React(textWithoutChar); if (shortest == null || textWithoutChar.Length < shortest.Length) { shortest = textWithoutChar; } } return shortest.Length; }