2018/02
This commit is contained in:
4
2018/02/Cargo.lock
generated
Normal file
4
2018/02/Cargo.lock
generated
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[[package]]
|
||||||
|
name = "day-02"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
6
2018/02/Cargo.toml
Normal file
6
2018/02/Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[package]
|
||||||
|
name = "day-02"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Anders Olsson <anders.e.olsson@gmail.com>"]
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
250
2018/02/input.txt
Normal file
250
2018/02/input.txt
Normal file
@@ -0,0 +1,250 @@
|
|||||||
|
lutrogkbetprmshdyfiqvzixaw
|
||||||
|
lujnmgkbetprmshdyicqvzivaw
|
||||||
|
lujnogkbetprmshdyfkqvtpxaw
|
||||||
|
lujnqgkbetpmmshdywcqvzixaw
|
||||||
|
lujnogtaetprmshdyffqvzixaw
|
||||||
|
lujnogkbetprmuldyfcqvqixaw
|
||||||
|
luunogkbetprlshdyfcqrzixaw
|
||||||
|
lujnogkketprmshdyhcqvtixaw
|
||||||
|
lyjnogzbetprmsbdyfcqvzixaw
|
||||||
|
eujnogkbetprmshdyfrqvzixmw
|
||||||
|
lujnogcbetprmshdyfvqvziqaw
|
||||||
|
lujnogkbempruahdyfcqvzixaw
|
||||||
|
lujlogkbetprmlhdyfyqvzixaw
|
||||||
|
lrjnogkbetyrmshdofcqvzixaw
|
||||||
|
lujnogkbetprmlheyfaqvzixaw
|
||||||
|
lujoohkbetprmshdyfccvzixaw
|
||||||
|
lijkogkietprmshdyfcqvzixaw
|
||||||
|
lujnoukbetprmshdyfcqvzmxkw
|
||||||
|
lujnogkbetprpshdyfcivzixiw
|
||||||
|
lfjiogkbetprmshdyfwqvzixaw
|
||||||
|
lujnogkbctprmshdffcqvzicaw
|
||||||
|
lujnogkbetprashdckcqvzixaw
|
||||||
|
lwjnogkbetprjshdyfcqvziyaw
|
||||||
|
lujoogkbetpsmshdyfcnvzixaw
|
||||||
|
lujnrgkjetprmsvdyfcqvzixaw
|
||||||
|
luinogkcetprmshdyfccvzixaw
|
||||||
|
lujnlgkbetprmshdyfcqvziirw
|
||||||
|
rujnogkbetprmshdyfcqvzmxag
|
||||||
|
luqnogkbetkrmshdhfcqvzixaw
|
||||||
|
lujnogkbhxprmshdyfcbvzixaw
|
||||||
|
lpjnogkbeyprmshdymcqvzixaw
|
||||||
|
lujnogkbetdymshvyfcqvzixaw
|
||||||
|
lujnoakbetprmshdlfcnvzixaw
|
||||||
|
lujnogabetpumsydyfcovzixaw
|
||||||
|
lpjnogkbetprmshdyfcqvzixzi
|
||||||
|
gujnogkbevprdshdyfcqvzixaw
|
||||||
|
lzjnogkbetprmsddyscqvzixaw
|
||||||
|
lujnolkbmtprmshdyfuqvzixaw
|
||||||
|
lujnogkbexpenshdyfcqvzixaw
|
||||||
|
lujnogknetprmshdrfcqvzpxaw
|
||||||
|
lujnogkbetpfmshayfcqvzwxaw
|
||||||
|
lujnogkbetmrmshdyfcfvzilaw
|
||||||
|
lujnogkqetpqdshdyfcqvzixaw
|
||||||
|
xujnvgkbetprmnhdyfcqvzixaw
|
||||||
|
lujnogkbetprsshdyfcqviixai
|
||||||
|
rujnogkbeiprmshdyfcvvzixaw
|
||||||
|
vujnogkeetprmshdyfcsvzixaw
|
||||||
|
lujnogkbetcrmshdypcqxzixaw
|
||||||
|
vuunogkbdtprmshdyfcqvzixaw
|
||||||
|
nujnogkbetprmsvyyfcqvzixaw
|
||||||
|
lujnogkbhtprmshdtfpqvzixaw
|
||||||
|
lujnogkbetzrmphdyfcqvzixan
|
||||||
|
lujnogkbetprmshdytcqvzixiu
|
||||||
|
luanogkbeturmshdyfcqviixaw
|
||||||
|
lujnogkbefprmshdyfcqvhixaf
|
||||||
|
luvnogkbetprmsfdyfcqvzixhw
|
||||||
|
lujnockbetprfshdyfcqvzixdw
|
||||||
|
luenogkbetprmshdyfacvzixaw
|
||||||
|
lfjnogkbetprmsldyfcxvzixaw
|
||||||
|
xujnogkbetxrmshdufcqvzixaw
|
||||||
|
lsjnogkbdtprmswdyfcqvzixaw
|
||||||
|
lujnogkbetprishdyfcpvgixaw
|
||||||
|
fujnogkbethrmshdyhcqvzixaw
|
||||||
|
lujnogabetprmsydyfcovzixaw
|
||||||
|
lvjnogkbetpvmshzyfcqvzixaw
|
||||||
|
lujnogkbeturmshdufcqvcixaw
|
||||||
|
lujnogkietprmshdyzyqvzixaw
|
||||||
|
lujnogkaatprmshdyfwqvzixaw
|
||||||
|
lujnogkbetpemshoyfcfvzixaw
|
||||||
|
lujiogkbetpumshiyfcqvzixaw
|
||||||
|
lujnvgkbetirmphdyfcqvzixaw
|
||||||
|
lujnkgkbetprmhhdyfcqvzixmw
|
||||||
|
lrjnorkbetprmphdyfcqvzixaw
|
||||||
|
cujnogkietprmshdjfcqvzixaw
|
||||||
|
lpjnogkbetpryshdyfcqvzixbw
|
||||||
|
lujrogkbetprmchdzfcqvzixaw
|
||||||
|
cujnlgkbetprmmhdyfcqvzixaw
|
||||||
|
rujnogkbotprmshdyfcqczixaw
|
||||||
|
lucnogknetprmshdyfcqvzixhw
|
||||||
|
lujnogkbaturmdhdyfcqvzixaw
|
||||||
|
lujnonkbetpcmshcyfcqvzixaw
|
||||||
|
lujnogkbelprmshwyfcqvzihaw
|
||||||
|
luanogkbetprmshdyhcqvzilaw
|
||||||
|
lljnogkbetwrmshdyfcqxzixaw
|
||||||
|
lujnogkbetprmshdyfcqejixaz
|
||||||
|
lujnogkbetbrmshdyfcqizixgw
|
||||||
|
lujeogkbetprkahdyfcqvzixaw
|
||||||
|
lujnogkbevprmshssfcqvzixaw
|
||||||
|
lutnogkbetgrmshdyfcqvmixaw
|
||||||
|
lujnoppbntprmshdyfcqvzixaw
|
||||||
|
lujnogkbetprmsmdyftqvdixaw
|
||||||
|
lujuogubetprmshdyfcqvmixaw
|
||||||
|
lujnorkbetprmsydyqcqvzixaw
|
||||||
|
nujnogkbetprmshdyfcqvzifdw
|
||||||
|
lujnogkbetpryshdygcqvziqaw
|
||||||
|
ldjiogkbetprmuhdyfcqvzixaw
|
||||||
|
lujnogkbetpsmghdyfcqvzixag
|
||||||
|
xujnogkbetprmsrdefcqvzixaw
|
||||||
|
lujnogkbejprmshiyfcqvzoxaw
|
||||||
|
lujnogkletlnmshdyfcqvzixaw
|
||||||
|
aujnogkbetprmwydyfcqvzixaw
|
||||||
|
lujnogkbetprmsvdyfcrvzixap
|
||||||
|
lujnogkbeeprmshdyfcqozixmw
|
||||||
|
lujnogfbethrmshdyfcnvzixaw
|
||||||
|
lujnogkbetprmshsrflqvzixaw
|
||||||
|
lujuogkbnrprmshdyfcqvzixaw
|
||||||
|
lutnogkbetpbmsgdyfcqvzixaw
|
||||||
|
lujnqgkbetzrmshdyfcxvzixaw
|
||||||
|
lujnogqbetprmshgxfcqvzixaw
|
||||||
|
lujnogkbytprmshdyfcqvznxrw
|
||||||
|
lujnogkbetprmshdyfcqvlidxw
|
||||||
|
nljnogkbetprmsqdyfcqvzixaw
|
||||||
|
lujnogkbetprmsidyfcqvfixjw
|
||||||
|
lujnogkbetprmnhdyfcqvzifaq
|
||||||
|
lujnogkbetprmwhdylcqvzixlw
|
||||||
|
lujnogkbstprmshcyffqvzixaw
|
||||||
|
lujnogkbetprmshdtfcqvzeyaw
|
||||||
|
lujvzgkbetprmshdyncqvzixaw
|
||||||
|
bujnogabetprmshdyfcqvzgxaw
|
||||||
|
lujnogkbptpfmshdyfcrvzixaw
|
||||||
|
ludnogkbetpsmshdyfcqvbixaw
|
||||||
|
pgjnogkbttprmshdyfcqvzixaw
|
||||||
|
lxjnogkbetprmshdyfcqezixyw
|
||||||
|
lujnogkbutprmshdyfsqvzixjw
|
||||||
|
lujnpgkbetlrmshdifcqvzixaw
|
||||||
|
lujnogkbetprmshdygczvzixam
|
||||||
|
lujnvgkwetirmshdyfcqvzixaw
|
||||||
|
lujnogkbetprhshdyfcqvvixow
|
||||||
|
lutnogkbetprmshdyfcrvzixgw
|
||||||
|
lujnopkbetprmsudyfcqvzqxaw
|
||||||
|
lujnolkbetprmjhdyftqvzixaw
|
||||||
|
fujoogkbetprmshdyfcqvziuaw
|
||||||
|
lqjnogkqetprmshdyfcqmzixaw
|
||||||
|
lujnogkbetprmgcdyfcqvzibaw
|
||||||
|
lujnogebebprmshdyzcqvzixaw
|
||||||
|
lujnogkbetprmshzgfcnvzixaw
|
||||||
|
luanogkretprmshdsfcqvzixaw
|
||||||
|
nljnogkbetprmshdyfcqnzixaw
|
||||||
|
lujnygkbetprmshdyfaqvzixjw
|
||||||
|
lujnogkbetprmshdlfcqtzixag
|
||||||
|
zujnogkbevprmshdyfcqvzixao
|
||||||
|
lujnogkbbtprmshtyfcyvzixaw
|
||||||
|
lujnogkbetjrmvhdyfcqvzixau
|
||||||
|
fujnojkbetprmshdyfcqyzixaw
|
||||||
|
suonogkbetprmshdyfcqvzexaw
|
||||||
|
lujnogkbetprrshdyfcqvpifaw
|
||||||
|
lujnogkbjtprmshdyfcqkzixat
|
||||||
|
lujnogklxtprmshdyfcqyzixaw
|
||||||
|
lujaogkbetprmshdyfcqvzihat
|
||||||
|
kujnogkbetprmshlyfcqvjixaw
|
||||||
|
lujnogkbetormshdyfcqvzbxap
|
||||||
|
lujnogzuetpemshdyfcqvzixaw
|
||||||
|
lujnogknetprmshdyfcwvlixaw
|
||||||
|
lujnopkbetpfmshdyfcqxzixaw
|
||||||
|
lqjnogkbetprmshdyfcoqzixaw
|
||||||
|
lujnogkbetprmshdyfcdvzhdaw
|
||||||
|
lujrogkbetprmshnyfcqvzijaw
|
||||||
|
luovogkbetprpshdyfcqvzixaw
|
||||||
|
xujnxgkbeturmshdyfcqvzixaw
|
||||||
|
lujnogkbetprmshdyfyquzixav
|
||||||
|
lujnogkbetptmshdyfcqvnitaw
|
||||||
|
lujnoskbetprmvhdyfcqvziyaw
|
||||||
|
dujnogkbetprmshdyfcqgzixae
|
||||||
|
ltjnogkbetprmshdvfcqyzixaw
|
||||||
|
luznogkbetprmshdyfcqvuixsw
|
||||||
|
lujnogkbeiprmshdhfcqvzixav
|
||||||
|
lujtogkbetormkhdyfcqvzixaw
|
||||||
|
lujnogkbetprmssdyfcqvzilas
|
||||||
|
lujnlgkbetprmshwyfcnvzixaw
|
||||||
|
lujnogkbbtprmshdyfcqozfxaw
|
||||||
|
lzjcogkpetprmshdyfcqvzixaw
|
||||||
|
lujnogkketprmshdyfcqvzixfg
|
||||||
|
oujnogkbetprgshdnfcqvzixaw
|
||||||
|
zujnogkbetpbmshdyfcqvzixiw
|
||||||
|
lcjnowkbetprmsmdyfcqvzixaw
|
||||||
|
lujnogkbetprmsedyvcqvzzxaw
|
||||||
|
lujnzikbetprmshdyfcqvzixlw
|
||||||
|
lujnogkbetpyqsgdyfcqvzixaw
|
||||||
|
lujnoukietprmssdyfcqvzixaw
|
||||||
|
lujnogkbetyrmsydywcqvzixaw
|
||||||
|
bujnogkdetprmsxdyfcqvzixaw
|
||||||
|
lujnogkbetprmshdyjcqazixnw
|
||||||
|
lgjnogktetprmsgdyfcqvzixaw
|
||||||
|
lujnogkbeaprmahdyfcmvzixaw
|
||||||
|
lubnoikbetprmshdyfcfvzixaw
|
||||||
|
eusnogkbotprmshdyfcqvzixaw
|
||||||
|
lujnogkbgtprmshdbfjqvzixaw
|
||||||
|
lujnogkketprmshdyfcqvcjxaw
|
||||||
|
lujnogkbetphmshdsfcqvzgxaw
|
||||||
|
lujnhgkbdtprmshdyfeqvzixaw
|
||||||
|
lujnogkbetpamsjdyfcqvlixaw
|
||||||
|
lujnogkbetprmshlyfccvzxxaw
|
||||||
|
lujzogkbetprmshdyfgqvzixpw
|
||||||
|
lujnogkbetprfshdylcqveixaw
|
||||||
|
lujnigkbetprmshdyfcqvzqxrw
|
||||||
|
lujnogkbetpqmshdybcvvzixaw
|
||||||
|
lujnogkbetprmsxdyfvqvzpxaw
|
||||||
|
lujnogkbetprmfhdyfcqvmoxaw
|
||||||
|
lujnoskbetprmhfdyfcqvzixaw
|
||||||
|
lujnogkbetprmsodkfcqvzdxaw
|
||||||
|
lujnogkbetpzrshdyfcqvzixpw
|
||||||
|
mujnogkbetprmshdyfcsvzixan
|
||||||
|
lujnonwbetprmshdyfcqvzixam
|
||||||
|
lujnogkgetgrmshdyfcxvzixaw
|
||||||
|
lujnogkbetpimshdyfcqvzixgs
|
||||||
|
auanogkbetprmshdyfcxvzixaw
|
||||||
|
lujnogkbenprishnyfcqvzixaw
|
||||||
|
mujiogkbetpreshdyfcqvzixaw
|
||||||
|
lujnogkbdipcmshdyfcqvzixaw
|
||||||
|
kujnogkbetprmshdyucqvlixaw
|
||||||
|
lujnogsbetprmshdrfcqvrixaw
|
||||||
|
luynogkbetprhshdyfcqvsixaw
|
||||||
|
lbjnogebetprmshdyfcqezixaw
|
||||||
|
lujnogkbetprmnhtyfcqvzixap
|
||||||
|
lujnogkbetprmszdhfcvvzixaw
|
||||||
|
lujnogkbetprtshdywcqezixaw
|
||||||
|
iuznogkbetprmshdyflqvzixaw
|
||||||
|
nujnogkbetprmkhyyfcqvzixaw
|
||||||
|
aujnogkbetprmshhyfcqvzijaw
|
||||||
|
lujzogkbstprmshdyfcyvzixaw
|
||||||
|
lujmogkbetprmshdtfctvzixaw
|
||||||
|
ljjnogkbetrrmshdyfcqvzixaq
|
||||||
|
lujnjgkbetprmshdyfdcvzixaw
|
||||||
|
lujnogkbettrmshdyzcqvzfxaw
|
||||||
|
dujnogybetvrmshdyfcqvzixaw
|
||||||
|
lujnogkbetermshdmfcqvzvxaw
|
||||||
|
lujnogkbetprmshdjfcdvzixab
|
||||||
|
lujnogkbetirmshjyfcqvjixaw
|
||||||
|
lujnogkbeiurmshdyfcqyzixaw
|
||||||
|
lsjnogkbmtproshdyfcqvzixaw
|
||||||
|
lujnogkqftprmshdyfcqvziwaw
|
||||||
|
lujvogkbetprmshdyfcqvoixyw
|
||||||
|
lujnogkoetprmshdyfpqvcixaw
|
||||||
|
lujnogkbetprmshdyfcqvmghaw
|
||||||
|
lujnmgkbetprmshdifcqveixaw
|
||||||
|
lumlovkbetprmshdyfcqvzixaw
|
||||||
|
lpjnogkretprmshdyfcqvfixaw
|
||||||
|
luvnogpbetprmshdyftqvzixaw
|
||||||
|
lujnogkbeturmshgymcqvzixaw
|
||||||
|
lujiogkbbrprmshdyfcqvzixaw
|
||||||
|
yujnogkbutprmshdyfcqvzixab
|
||||||
|
lujvofubetprmshdyfcqvzixaw
|
||||||
|
lujwogkbrtprmshdyfcqvnixaw
|
||||||
|
lusnogkbetprmsydyfcqvzikaw
|
||||||
|
lujnolkbewprmshdyfyqvzixaw
|
||||||
|
lujnogkbetprvshdyfcivzikaw
|
||||||
|
lujnogxbetprmszdyfzqvzixaw
|
||||||
|
lujnogkvetprmxhdydcqvzixaw
|
||||||
|
lujnogkbetpimsrdwfcqvzixaw
|
||||||
|
lujnomboetprmshdyfcqvzixaw
|
||||||
60
2018/02/src/main.rs
Normal file
60
2018/02/src/main.rs
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
use std::collections::HashMap;
|
||||||
|
use std::io::{self, BufRead};
|
||||||
|
|
||||||
|
fn diff(left: &str, right: &str) -> Vec<(usize, (char, char))> {
|
||||||
|
left.chars()
|
||||||
|
.zip(right.chars())
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(_, (a, b))| a != b)
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let stdin = io::stdin();
|
||||||
|
|
||||||
|
let lines = stdin
|
||||||
|
.lock()
|
||||||
|
.lines()
|
||||||
|
.filter_map(Result::ok)
|
||||||
|
.map(|line| {
|
||||||
|
let mut map = HashMap::new();
|
||||||
|
|
||||||
|
for ch in line.chars() {
|
||||||
|
map.entry(ch).and_modify(|x| *x += 1).or_insert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
(line, map)
|
||||||
|
}).collect::<Vec<_>>();
|
||||||
|
|
||||||
|
let two = lines
|
||||||
|
.iter()
|
||||||
|
.filter(|(_, map)| map.iter().any(|(_, count)| *count == 2))
|
||||||
|
.count();
|
||||||
|
let three = lines
|
||||||
|
.iter()
|
||||||
|
.filter(|(_, map)| map.iter().any(|(_, count)| *count == 3))
|
||||||
|
.count();
|
||||||
|
|
||||||
|
println!("part.one={}", two * three);
|
||||||
|
|
||||||
|
for (i, (left, _)) in lines.iter().enumerate() {
|
||||||
|
let diff = lines
|
||||||
|
.iter()
|
||||||
|
.skip(i + 1)
|
||||||
|
.map(|(right, _)| diff(left, right))
|
||||||
|
.find(|diff| diff.len() == 1)
|
||||||
|
.map(|mut diff| diff.pop().unwrap());
|
||||||
|
|
||||||
|
if let Some((n, _)) = diff {
|
||||||
|
let string = left
|
||||||
|
.chars()
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(i, _)| *i != n)
|
||||||
|
.map(|(_, c)| c)
|
||||||
|
.collect::<String>();
|
||||||
|
|
||||||
|
println!("part.two={:?}", string);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user