mirror of
https://github.com/wezm/advent-of-code.git
synced 2024-12-18 18:29:55 +00:00
Day 2 2018
This commit is contained in:
parent
696b90944d
commit
f78231443c
2 changed files with 309 additions and 0 deletions
250
2018/input/2018/day2.txt
Normal file
250
2018/input/2018/day2.txt
Normal file
|
@ -0,0 +1,250 @@
|
||||||
|
ybruvapdgixszyckwtfqjonsie
|
||||||
|
mbruvapxghslyyckwtfqjonsie
|
||||||
|
mbruvapdghslzyckwtkujonsie
|
||||||
|
rwruvapdghxlzyckwtfqjcnsie
|
||||||
|
obruvapdgtxlzyckwtfqionsie
|
||||||
|
lbruvapdghxqzyckwtfqjfnsie
|
||||||
|
mbrunapdghxlzyccatfqjonsie
|
||||||
|
mbruvapdghxlzyokltfqjdnsie
|
||||||
|
ybruvapdghxlzmckwtfqjmnsie
|
||||||
|
mbruwaadghxdzyckwtfqjonsie
|
||||||
|
muruvapdghxlzyckvtfqjonsim
|
||||||
|
mbruvapdghxlkyckwtxqjonjie
|
||||||
|
mbruvaqdghxlzyckwtfqjrnnie
|
||||||
|
mwruvapdghdlzyckttfqjonsie
|
||||||
|
mbruvapdgtelzyckwxfqjonsie
|
||||||
|
mbruvapdohxlzvckwtfqjonhie
|
||||||
|
mbrugapdgbxlzyckwtfqjynsie
|
||||||
|
mbruvapdghxlzyckwtlqjonjiu
|
||||||
|
mbruvapwghxlzyckwafqjonbie
|
||||||
|
wbruvapdghxlhyckwtfqjonsii
|
||||||
|
mbruvapdghxlzyckwtcqnonsiq
|
||||||
|
mbyuvapighxlzybkwtfqjonsie
|
||||||
|
mbrrvapdghxvzyckwtfqjonsio
|
||||||
|
mhruvapdghrlzyckwtfzjonsie
|
||||||
|
mtruvapvghxlzyckwtfnjonsie
|
||||||
|
mmrlhapdghxlzyckwtfqjonsie
|
||||||
|
mbruvapdgpxlzyjkwtfqjovsie
|
||||||
|
mbrucapdghxlzymkwtzqjonsie
|
||||||
|
mbeuvafdghxlzyckwtfqjonwie
|
||||||
|
mbruvapcghxlayckwtfqjonsii
|
||||||
|
mbruvabdghxlzyckwtfqyansie
|
||||||
|
mbruvjpdghxlzyckwtfqgfnsie
|
||||||
|
lbruvapdghxlzyckwtfqjonriv
|
||||||
|
mbrupapdghxlzycjwtfqronsie
|
||||||
|
mbpuvapdthxlzymkwtfqjonsie
|
||||||
|
mbiuvapdgixlzyckwxfqjonsie
|
||||||
|
mbruvapdghxyzyckwtfcjonsbe
|
||||||
|
mbrurapkghxlzyckwtfqjonzie
|
||||||
|
mbrufapdrhxlzyciwtfqjonsie
|
||||||
|
mbruvapdghxlzbckwtfqjoisae
|
||||||
|
ubruhapdghxlzuckwtfqjonsie
|
||||||
|
mbruvapdjhulzyckwtfqjonshe
|
||||||
|
mbruwapdgyxlzyckntfqjonsie
|
||||||
|
mwruvapdghplzyckwtfqjonsme
|
||||||
|
mbruvapjghtlzyckwtfqgonsie
|
||||||
|
pbruvapdghhlzyckwtfrjonsie
|
||||||
|
mbruvgpdihxqzyckwtfqjonsie
|
||||||
|
mbruvahdohxlzyckwtfijonsie
|
||||||
|
ibuuvapdghxlzyckwtfqjofsie
|
||||||
|
mbruvandghxlzyckwtfqjrnxie
|
||||||
|
mbrjvlpdghxlzyckwgfqjonsie
|
||||||
|
mbruvapogfxlzyckotfqjonsie
|
||||||
|
mbruvrpdghxlzyckutfejonsie
|
||||||
|
mbruvbpdghxlzyhkwtfqjonsip
|
||||||
|
mbruvapdghxlzyckmnfqjensie
|
||||||
|
mbruvapdghvlzyckwtfqjowsix
|
||||||
|
mbruvakdgholzwckwtfqjonsie
|
||||||
|
mbruvapdghxlzackwtfqconsae
|
||||||
|
mbruvapdghxlzyqvwtfqjlnsie
|
||||||
|
mprrvapdgfxlzyckwtfqjonsie
|
||||||
|
mbrunacdghxlhyckwtfqjonsie
|
||||||
|
obruvapdgsxlzyckwtfqjonvie
|
||||||
|
murcvapdghslzyckwtfqjonsie
|
||||||
|
mbruvapdghxlzyzkwmftjonsie
|
||||||
|
mbrwvapdgtvlzyckwtfqjonsie
|
||||||
|
mbxuvapdghxlzqcnwtfqjonsie
|
||||||
|
mbruvaddghxboyckwtfqjonsie
|
||||||
|
mhruvwndghxlzyckwtfqjonsie
|
||||||
|
mbrdvapdghxlzyckwmpqjonsie
|
||||||
|
mbruvapdgyxlzyckizfqjonsie
|
||||||
|
mbruvapdghxlzlckwtfqeowsie
|
||||||
|
mbruvbpdgrxlzyckwtfqjonsxe
|
||||||
|
mbruqapoghxlzyckwtvqjonsie
|
||||||
|
mbouhapdghmlzyckwtfqjonsie
|
||||||
|
mbruvapjghxidyckwtfqjonsie
|
||||||
|
mbsuvapkghxlkyckwtfqjonsie
|
||||||
|
mbruvlpdghxlzycrwtfqjonsis
|
||||||
|
mcrueapdghxlzyckwtfqjynsie
|
||||||
|
muruvapngbxlzyckwtfqjonsie
|
||||||
|
mbruvapdghxlzycawtfyjojsie
|
||||||
|
mbruvbpdghxczyjkwtfqjonsie
|
||||||
|
ybduvapdghxnzyckwtfqjonsie
|
||||||
|
mbruvbpdghxlzyckwtfbjousie
|
||||||
|
mbouvapdghxlzycbwtfqponsie
|
||||||
|
mbruvaedghplzycgwtfqjonsie
|
||||||
|
mbrhvapdghxlzyckytfqjgnsie
|
||||||
|
mbruvapdqbxleyckwtfqjonsie
|
||||||
|
mbruvapddhhldyckwtfqjonsie
|
||||||
|
mbruvapdghxlwrckwtfqjondie
|
||||||
|
mbruvapdmhxlzyckwtfqkonsve
|
||||||
|
xbbuvapdghxlzyckwtfkjonsie
|
||||||
|
mbruvapdghxlzyckwcfqjunkie
|
||||||
|
mbruvapdghxlzyckwtfqxonfib
|
||||||
|
mbrtvapkghxlzyckwtfqeonsie
|
||||||
|
mbruvazdghxldymkwtfqjonsie
|
||||||
|
kbruvapddhxlzfckwtfqjonsie
|
||||||
|
mbouvapdghxlpyckwtfqjoosie
|
||||||
|
mbauvapdghxlzyckwtfqjszsie
|
||||||
|
mbruvapdghtlzyckntfqtonsie
|
||||||
|
mbruvipdggxlzbckwtfqjonsie
|
||||||
|
mbruqapdghrlzyckwtfqjznsie
|
||||||
|
myruvacdghxlzyckwifqjonsie
|
||||||
|
mbruvapdghxlzuckwtfkjocsie
|
||||||
|
mwjuvapdghxlzyckwtfqjonsxe
|
||||||
|
mbruvapxghxlzickwtfqjobsie
|
||||||
|
mbrupapdghxtlyckwtfqjonsie
|
||||||
|
meruvapdjjxlzyckwtfqjonsie
|
||||||
|
mbruvkodghxlzyckwofqjonsie
|
||||||
|
mbruvapdgexlzyckwtgkjonsie
|
||||||
|
mbruvapwghxlzyckwtcqjonsiw
|
||||||
|
mbruvapdghxlzykkwtfqtoxsie
|
||||||
|
mbruvapdahxlzycgwtfwjonsie
|
||||||
|
mbruvapdgwxlhyckhtfqjonsie
|
||||||
|
mbruvapbghxlzycbhmfqjonsie
|
||||||
|
mbruvapdghxvzyzkwtfqjonsin
|
||||||
|
mbrcvapdqhxlzyckwyfqjonsie
|
||||||
|
zbruvaxdghxlzyckwgfqjonsie
|
||||||
|
mtruvapdghxlilckwtfqjonsie
|
||||||
|
bbruvapdghxlzyckwtfmjonsxe
|
||||||
|
mbruvajdghxlzyckwtfqfwnsie
|
||||||
|
mbruvapdgkxlzyckwtfqionpie
|
||||||
|
rbruvapdghxlryckwdfqjonsie
|
||||||
|
mbruvandghxlzyckwmfvjonsie
|
||||||
|
mbruvahdghxlzeckwtfqjonsme
|
||||||
|
mbruvnpcghxlzyckwtfqjobsie
|
||||||
|
mbruvapdghqlzyckwtfbjonsiy
|
||||||
|
mbruvavdghxlzyckwufqjodsie
|
||||||
|
mbruvapdghxlzyckwtfzmovsie
|
||||||
|
mbruvlpdghxuzyckwtfqjoesie
|
||||||
|
mbruvopdghxlzycwwtfqjansie
|
||||||
|
obruvapdghglzybkwtfqjonsie
|
||||||
|
mbpuvlpdghxlcyckwtfqjonsie
|
||||||
|
mbruvaidghxlzyckwtfmjonoie
|
||||||
|
mbruvapdihxzzyckwtfqjonsiy
|
||||||
|
mbquvapdghxlzyckwtfqconsme
|
||||||
|
mbruvapdghslzyckqtfqjojsie
|
||||||
|
mbrzdapdghxmzyckwtfqjonsie
|
||||||
|
mwruvapdghxozyckwtfqjonsxe
|
||||||
|
muruvapdgfxlzyckwtfqjojsie
|
||||||
|
wtruvapdghxlzyckvtfqjonsie
|
||||||
|
mbruvapdghxlzyckysfqjxnsie
|
||||||
|
mbruvrpdghxczyckktfqjonsie
|
||||||
|
mbquvapdghxlryckwtfqjonsne
|
||||||
|
mbruvapdghflzycvwtfqjpnsie
|
||||||
|
mbruvapughclzyckwtfqjonsin
|
||||||
|
mbrhvapdghxlpyckwtfqjonsre
|
||||||
|
mbruvapdgtxlzyckwtfqjoosit
|
||||||
|
mbrupapnghxhzyckwtfqjonsie
|
||||||
|
mmvuvapdvhxlzyckwtfqjonsie
|
||||||
|
mbruvaptghxlzyckwtfqjotsse
|
||||||
|
mgruvapvghxlzyckwtfqjonsix
|
||||||
|
mbrupapdghxszyckwtfqjunsie
|
||||||
|
mbruvkpdghelzyckwtfqjpnsie
|
||||||
|
mbruvrrdghjlzyckwtfqjonsie
|
||||||
|
mbruvapdghnlzyckwtfkjonsze
|
||||||
|
mbruvwpdghxlzyckwtfqhoysie
|
||||||
|
mbrsvapdfhxlzyckwtfqjobsie
|
||||||
|
mbruvapdgexezymkwtfqjonsie
|
||||||
|
ybruvapdghxlzyckwtfqxonsiw
|
||||||
|
mrruvapdghxdzyckwtfqjossie
|
||||||
|
mbruvapdghtlzyckwtfqconsiu
|
||||||
|
mbrpvapdghxlzlckwpfqjonsie
|
||||||
|
mbruvjpdghslzyckwtfqjjnsie
|
||||||
|
mhruvapoghxlzyckwtfvjonsie
|
||||||
|
mbrubqpdghvlzyckwtfqjonsie
|
||||||
|
mbruvapdghxlzackwtfqconsiw
|
||||||
|
mbruvapdgnxlzkckwtfqjdnsie
|
||||||
|
mbrudapgghelzyckwtfqjonsie
|
||||||
|
mbruvapdghxlzlakwbfqjonsie
|
||||||
|
mbpuvapdghxlzyckwtuqjonjie
|
||||||
|
abruvapdghxlzykkwtfqjonzie
|
||||||
|
mbrupupdghxlsyckwtfqjonsie
|
||||||
|
mbrsvupdghxlzyckwtfqjonkie
|
||||||
|
mxruvgpdghxllyckwtfqjonsie
|
||||||
|
mbrnvapdghxlzycbwtfqfonsie
|
||||||
|
mbrbxapdghxlzyckttfqjonsie
|
||||||
|
mbnuvapdghxlzyxkwtmqjonsie
|
||||||
|
mbrfvapdghjlzickwtfqjonsie
|
||||||
|
mbhuvupdghxlzyxkwtfqjonsie
|
||||||
|
mbrcvapdghxluyckwtfqjznsie
|
||||||
|
mbruvapdghxlzyckwofqjoxsiz
|
||||||
|
mbrevapdghxloyckwtfqjonnie
|
||||||
|
mbruvipdghnlzyckwtfqjopsie
|
||||||
|
mbxxvaptghxlzyckwtfqjonsie
|
||||||
|
mbruvcpdghxlztckwtjqjonsie
|
||||||
|
mqruvlpdghxlzyckotfqjonsie
|
||||||
|
mbruvapdgqxlzyckwtfqjpvsie
|
||||||
|
mbruvapdgvxlzyjkwtfqjbnsie
|
||||||
|
mbruvapdghxlgyckwtfqcocsie
|
||||||
|
mbruvapdghxkwyckwtfqjoqsie
|
||||||
|
mbrgvavdghxlzyckwxfqjonsie
|
||||||
|
qbruqapdgvxlzyckwtfqjonsie
|
||||||
|
mbauvapdghxlzgckwtfqjunsie
|
||||||
|
mbruvapdgdxluyckwtfqjoosie
|
||||||
|
mbruvapdghxlzykkwtfqwobsie
|
||||||
|
mbruvapdghxlzhcnwtfqjonqie
|
||||||
|
mbruvapdghxlzycbhmfqjonsie
|
||||||
|
mbruvapdghxluyczwtfqjontie
|
||||||
|
mbruvapnghxlzyckwnfqjonbie
|
||||||
|
moruvapdghxlzcckwtfqponsie
|
||||||
|
mbruvapfgxxlzyckwtfqjunsie
|
||||||
|
mbruvapdghxlryckvtfejonsie
|
||||||
|
mbrzvapdghxlzvcbwtfqjonsie
|
||||||
|
mbruvapdgqxlzyckwcfqjonsce
|
||||||
|
abruvupdrhxlzyckwtfqjonsie
|
||||||
|
mbrubaptghxlzyckwtfqjondie
|
||||||
|
mgruvapdgpxlzyckwtfijonsie
|
||||||
|
mbruvapdghxczlckwtfujonsie
|
||||||
|
mbruvapdgmmlzyckwtfqjonsir
|
||||||
|
mbruvapdhhxltyckwtfdjonsie
|
||||||
|
mbruvapdghxlzyckwtfdjjnste
|
||||||
|
mbrdvzpdghxlcyckwtfqjonsie
|
||||||
|
mbruvapdghxlzyckwtnqbonsim
|
||||||
|
mbrovapdghxlzyckwtfpjousie
|
||||||
|
mymuvapdghxlzyjkwtfqjonsie
|
||||||
|
mbpuvapdghxlzyckwtfljcnsie
|
||||||
|
mbrxvapdghxlzyclwtfqjonpie
|
||||||
|
mbrueapdghxlzyckwtfqjopsia
|
||||||
|
mbruvapdghxlzycdwtfqjbfsie
|
||||||
|
tbruvavdghxlzyckwtmqjonsie
|
||||||
|
mbduvapdghxlzyckwrfqjrnsie
|
||||||
|
mkrsvapughxlzyckwtfqjonsie
|
||||||
|
mbruvapdghylzyckwtfqtolsie
|
||||||
|
mgruvapdglxldyckwtfqjonsie
|
||||||
|
mbrunapdghclzyckwtfqjonsiy
|
||||||
|
mbruvapdgrxlxyckwtfgjonsie
|
||||||
|
mbruvapdghxpzbckftfqjonsie
|
||||||
|
mbruvcpdghxyzyckotfqjonsie
|
||||||
|
mbruvapdghxlsyckwtfqcqnsie
|
||||||
|
mbruvapdghxlzzckwtfqjonskf
|
||||||
|
mbruvppdghxlzfckwtfqjgnsie
|
||||||
|
mbhuvapdghxlzytkwtfqjonoie
|
||||||
|
mbruvapdghxlzvrkwtfqjjnsie
|
||||||
|
mbmuvapdghxuzyckwtfqjonsze
|
||||||
|
mbruvapdghnlzycnwtfqjonsil
|
||||||
|
mbruvapdgholzyckitfqjonsia
|
||||||
|
mbruxapdghxlmyckwtfqbonsie
|
||||||
|
mbauvapdgholzyckwtfqjolsie
|
||||||
|
mbruvapdghxlzyckwtfqjotslq
|
||||||
|
dbrutapdghxlzyckwtfqjonsiv
|
||||||
|
mbruvapdzhxlyyckwtfbjonsie
|
||||||
|
mmruaapsghxlzyckwtfqjonsie
|
||||||
|
mbruvaldgqxqzyckwtfqjonsie
|
||||||
|
mbruvaodghxdzyjkwtfqjonsie
|
||||||
|
mbrcmatdghxlzyckwtfqjonsie
|
||||||
|
mbrqvapdgtxlzycewtfqjonsie
|
||||||
|
mjruvapdghzlzyckwtfqjonrie
|
||||||
|
mbruvapdghxopcckwtfqjonsie
|
||||||
|
mbruvapdghxszycwwtfqjoqsie
|
||||||
|
mbruvapdgoxezyckwtjqjonsie
|
59
2018/src/bin/day2.rs
Normal file
59
2018/src/bin/day2.rs
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
use std::collections::HashMap;
|
||||||
|
use std::fs;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let input = fs::read_to_string("input/2018/day2.txt").expect("input");
|
||||||
|
part1(&input);
|
||||||
|
part2(&input);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part1(input: &str) {
|
||||||
|
let mut twos = 0;
|
||||||
|
let mut threes = 0;
|
||||||
|
|
||||||
|
for line in input.lines() {
|
||||||
|
let char_counts = count_chars(line);
|
||||||
|
if char_counts.iter().any(|(_k, &v)| v == 2) {
|
||||||
|
twos += 1;
|
||||||
|
}
|
||||||
|
if char_counts.iter().any(|(_k, &v)| v == 3) {
|
||||||
|
threes += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("{}", twos * threes);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn count_chars(line: &str) -> HashMap<char, u32> {
|
||||||
|
let mut counts = HashMap::new();
|
||||||
|
line.chars()
|
||||||
|
.for_each(|chr| *counts.entry(chr).or_insert(0) += 1);
|
||||||
|
counts
|
||||||
|
}
|
||||||
|
|
||||||
|
fn part2(input: &str) {
|
||||||
|
for (i, line) in input.lines().enumerate() {
|
||||||
|
for (j, other) in input.lines().enumerate() {
|
||||||
|
if i == j {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
let number_differing =
|
||||||
|
line.chars().zip(other.chars()).fold(
|
||||||
|
0,
|
||||||
|
|acc, (chr1, chr2)| if chr1 != chr2 { acc + 1 } else { acc },
|
||||||
|
);
|
||||||
|
|
||||||
|
if (number_differing == 1) {
|
||||||
|
println!("{} and {} differ by 1 char", line, other);
|
||||||
|
let common: String = line
|
||||||
|
.chars()
|
||||||
|
.zip(other.chars())
|
||||||
|
.filter_map(|(chr1, chr2)| if chr1 != chr2 { None } else { Some(chr1) })
|
||||||
|
.collect();
|
||||||
|
println!("Common: {}", common);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue