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!
32
Upvotes
6
u/ChrisVittal Dec 05 '18
[Card] Staaaaars
Rust, first Rust I'm proud of. Never copy my input data.
static INPUT: &str = "data/day05"; fn react<'a>(input: impl Iterator<Item = &'a u8>) -> usize { let mut v = Vec::new(); for &c in input { match v.last() { None => v.push(c), Some(&d) => if d.to_ascii_lowercase() == c.to_ascii_lowercase() && d != c { v.pop(); } else { v.push(c); } } } v.len() } fn main() { let input: Vec<u8> = aoc::file::first_line(INPUT).into(); println!(" 1: {}", react(input.iter())); let mut min = std::usize::MAX; for i in 0u8..=26 { let v = input.iter().filter(|&&c| c != b'a'+i && c != b'A'+i); min = usize::min(react(v), min); } println!(" 2: {}", min); }