Skip to content

Commit b06aa42

Browse files
committed
[Day02] - Part 1
1 parent 5d77698 commit b06aa42

File tree

4 files changed

+317
-0
lines changed

4 files changed

+317
-0
lines changed

day02/Cargo.lock

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

day02/Cargo.toml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[package]
2+
name = "day02"
3+
version = "0.1.0"
4+
authors = ["hindenbug <[email protected]>"]
5+
edition = "2018"
6+
7+
[dependencies]

day02/day02.txt

+250
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
qwubbihrkplymcraxefntvdzns
2+
qwugbihrkplyzcjahefttvdzns
3+
qwugbihrkplymcjoxrsotvdzns
4+
qwugbphrkplympjaxmfotvdzns
5+
qwugbghrkpltbcjaxefotvdzns
6+
qwubbihrwpuymcjaxefotvdzns
7+
qiugpihrkplymcwaxefotvdzns
8+
qwugbihrkplymcjavefotvotns
9+
qwugbihrkpvymcjaxefotvnzes
10+
qwvgbihrkpltmcnaxefotvdzns
11+
qwugvihrkplymvjaxefotvczns
12+
qwugbihrkplymwjazefotvyzns
13+
qwugbihrkplbmcjbxefttvdzns
14+
qhugbihrkplymcjaxefotnazns
15+
qwugbihrkpyyacjacefotvdzns
16+
qwugsihrkpsymcjaxafotvdzns
17+
qwugbihriplymcjixefosvdzns
18+
qwuibihrkjlvmcjaxefotvdzns
19+
qwugbjhrgplymcjaxefotvdzys
20+
qwugnimrkplymcjayefotvdzns
21+
qwumjihrkplymcjexefotvdzns
22+
qwugbihukptymcjaxefotvvzns
23+
qwughthrgplymcjaxefotvdzns
24+
qlugbihrkplymcjbxhfotvdzns
25+
qhugbiyrkplymcjaxefotvdzes
26+
qwugbihrkvlymcjaxecotvtzns
27+
qwugbihrkphymcjaxefitvizns
28+
qwugbbhdtplymcjaxefotvdzns
29+
qwugbihrkplymceaxefotvltns
30+
mwugbihrkptymcpaxefotvdzns
31+
qwugbihrdplymcvaxefotvdwns
32+
qwugbihrkplymcjaxekhtvhzns
33+
qjugbihrkplyjcjaxefonvdzns
34+
qwugbihrjplymcjaxefgtudzns
35+
qlugbihrkplymcjaxefztvdpns
36+
qwugbihrkclyvpjaxefotvdzns
37+
qwugbihrsplymnjhxefotvdzns
38+
qwudbihrbxlymcjaxefotvdzns
39+
qwugbihrkplymcjxxefatvdzng
40+
qwujbihrkplyqdjaxefotvdzns
41+
qwugnihrkplamcjaxefotvmzns
42+
qwugnihrkplymcjajekotvdzns
43+
qwugbihrkslymcjamsfotvdzns
44+
fwugbihrkplymcjaxetotvdzne
45+
qwughihrkplyucfaxefotvdzns
46+
qwuebihrkplymcraxefotvdzgs
47+
qwugbinrkplymcjaxefodvdznh
48+
qwudbihrkplymcjsxefotvjzns
49+
qwlgbihrkzlymcjixefotvdzns
50+
qwugbihckpoymcpaxefotvdzns
51+
qwfgbibskplymcjaxefotvdzns
52+
qwugbihrkplymczaxdfotvuzns
53+
qwugbihwkplymcjaxepxtvdzns
54+
qwubbihrkplymcjaxefntfdzns
55+
qwunbihrkpaymcjaxefotvdzni
56+
qwugfihrkplymujaxefotvdzni
57+
qwugrihrkplymkjaxxfotvdzns
58+
ztugbihrkplymcjaxefotvdznt
59+
qwugbihrkplvmcjaxefotvdzph
60+
qwugtinrfplymcjaxefotvdzns
61+
qwugbihrkplamcjkmefotvdzns
62+
qwtgbihryplymcjaxeeotvdzns
63+
qwugbiazkplymhjaxefotvdzns
64+
pwugbihrkplymklaxefotvdzns
65+
wwugbihkxplymcjaxefotvdzns
66+
dwugbihrgpdymcjaxefotvdzns
67+
qwulbihrkplymcjaxefoqvqzns
68+
qvugbihrkplyhcjtxefotvdzns
69+
qwugbihrkplymcjaxcfotvfzjs
70+
qwugbihrkpkymyjaxdfotvdzns
71+
qwugbinrkplymcjswefotvdzns
72+
qcuguiqrkplymcjaxefotvdzns
73+
qwugbihlkplyccjaxefrtvdzns
74+
qwugbihpkplomcjaxefotvdhns
75+
qwggbphrkplymcjaxbfotvdzns
76+
qwuipihrkplymcjaxefotvdznt
77+
qwugbihrhplyccjaxeforvdzns
78+
qwugbdhrkplymcjdxefotvdznv
79+
qwugbihrkplymcjaxefotvbfos
80+
qwugtihrkplymcocxefotvdzns
81+
qwugbihrkpljmcjaxwfovvdzns
82+
qwugbnhrkplymcjaxefotvdxnm
83+
qwugbihrkpeymcjauefotvlzns
84+
qwugbihjkplymcraxefftvdzns
85+
qwugbghrkplymcjaxefotvizni
86+
qwwgbihrkplymcjrxefotvrzns
87+
qwugbihrkplymzjawexotvdzns
88+
qwugnihrkplymcjpxnfotvdzns
89+
qwugbihrkdlytcjaxecotvdzns
90+
qwugbihrkacymdjaxefotvdzns
91+
qlugbehrkplymcjaxzfotvdzns
92+
fwugbihrkplymcjamefotldzns
93+
qwugbihrkplymcjarefotlszns
94+
qwsgbihrkpnymcjfxefotvdzns
95+
awuubihrkplymcjaxefrtvdzns
96+
qwngbihrkpjtmcjaxefotvdzns
97+
qwugbihrkpltmkjaxefytvdzns
98+
ewugbihrkplymcjvxefotvdzus
99+
qwugbihrpplymcjaxsfmtvdzns
100+
qwrgbihrmplymcjaxefutvdzns
101+
qwugbihrknxymcwaxefotvdzns
102+
qwugbnurkplymcjabefotvdzns
103+
qwugbihrkphomfjaxefotvdzns
104+
qwugbchrkplymcjaxefctvdens
105+
qwugbidrkplymcjaxefotwwzns
106+
qwggbohrkplgmcjaxefotvdzns
107+
nwkgbihrkplymcjaxqfotvdzns
108+
qwuibihrkpnymajaxefotvdzns
109+
qwugsihrzplymujaxefotvdzns
110+
qwugbihrkplumcgaxefodvdzns
111+
qwugbqhrkplymcjaxefotvddts
112+
qwugbiorkpvyacjaxefotvdzns
113+
bjugbihukplymcjaxefotvdzns
114+
qwugbyhrkplymxjaxexotvdzns
115+
vwugbihrkplymcraxefotgdzns
116+
qwugbihrkplymjwaxeaotvdzns
117+
qwpsbihrkplykcjaxefotvdzns
118+
qwugbqhrkplymcjaxefotgdzno
119+
qwugbjhrkplymcjaxefatvczns
120+
qwuglihrkclymcjvxefotvdzns
121+
qjugbihrkpsymcjajefotvdzns
122+
qwugbinrkptymcjaxedotvdzns
123+
qwurbihrkglymcjaxefomvdzns
124+
qfugbihrsxlymcjaxefotvdzns
125+
lwuggihrkplymcjaxefotvdzds
126+
qwugbihrkplymcjhxwfjtvdzns
127+
qwugbhjrkplymcjaxefotvdyns
128+
qwugbihrkplymcjoxefepvdzns
129+
awwgbihryplymcjaxefotvdzns
130+
qpugbihrkplymcjaxekorvdzns
131+
qwulbihrkplymcuapefotvdzns
132+
qwugbwhrkplymljaxefotvdrns
133+
qwugxihrkplymjjalefotvdzns
134+
qwugbmhrkplymcjyxefotvdnns
135+
qwugbihrkplymcjnxgfotsdzns
136+
qwygbihrkplsmczaxefotvdzns
137+
qwugbihrkplymqjaxefovgdzns
138+
qwuwbihrkplymcjaxefktvdznu
139+
qwugbihrkplyfcjaxeoowvdzns
140+
qwufbiyrkplymcjaxedotvdzns
141+
qwusbirrkplymcjaxefotvdlns
142+
qwurbihroplymtjaxefotvdzns
143+
qiugbihrkplymcjaxefvtvmzns
144+
qwugrihrkflymcjaxefotvdzls
145+
qwugbimrzplymcoaxefotvdzns
146+
qyugbiwrkplymcjasefotvdzns
147+
qwubbihrkpiymcjaxefotvdzws
148+
qwugbilrkplymjjgxefotvdzns
149+
qwugbihykplympjaxefotgdzns
150+
qwugmxhrkplymcjaxefotvdins
151+
qwfjbahrkplymcjaxefotvdzns
152+
owuzbihrkplymcbaxefotvdzns
153+
qwugbihrkilymcjaxefotsdzvs
154+
qwugbwhrkplymcpzxefotvdzns
155+
qwugbihrkplymcjlcefotvdjns
156+
kwugbihrkplymcjaxefotvhdns
157+
qwulbihrkplymcfwxefotvdzns
158+
qwxabihrkplyhcjaxefotvdzns
159+
qwugbihrzpoymcjaxefotqdzns
160+
qwugbihrknlymcjabefovvdzns
161+
qyugbihrkplymclaxefotvgzns
162+
qwugbxhrkpgymcjaxefotvdlns
163+
qwuplihrkplymcjaxefhtvdzns
164+
qwugbihruplymcjaxefotmdzps
165+
qwugkihrkplymcqtxefotvdzns
166+
qwugbihrkplymcjaxeyodvszns
167+
qwukbihrkplymojaxefotvczns
168+
nwugbihrkplymcjaxrfothdzns
169+
qwugbihrkklymcjaxqfotvdzcs
170+
qwugbihrkplemcjaxefotvufns
171+
qwugbihrkplymcjaxbfitvdzne
172+
qwugbizrkplymcjaxgfotvdhns
173+
qwulbihrxplymcjaxefolvdzns
174+
jwugbihckpoymcpaxefotvdzns
175+
qwugeihrkplymbjcxefotvdzns
176+
qwuxbihbkplymcjaxeuotvdzns
177+
qwugbshrkplyvcjlxefotvdzns
178+
qwugbimrjplymcjaxtfotvdzns
179+
qwugzikrkplymcjaxefxtvdzns
180+
qwugbihrkplymcjaxefftvdgnq
181+
qwugbihnkilymcjaxemotvdzns
182+
qfugbihrkplyfcjadefotvdzns
183+
qwugbihrkplymrsaxefwtvdzns
184+
qwugfihrkpsymckaxefotvdzns
185+
qwulbihrkplymyjaxefotvdkns
186+
quugbikrkpkymcjaxefotvdzns
187+
qwugbihfgplymdjaxefotvdzns
188+
qougbihrkplemcjaqefotvdzns
189+
qwugbihrkplemcjjxefotvdyns
190+
qfuhbikrkplymcjaxefotvdzns
191+
qhugbihrcplymcjaxefrtvdzns
192+
qwugbmhnkplymcjnxefotvdzns
193+
qwugbihrkplymmjaaefofvdzns
194+
qwugbihrtplykcjaxefoxvdzns
195+
qwugbihrkmvymcjaxefetvdzns
196+
qwugbfjrkplymcjaxefotadzns
197+
qwuibihrrplymcjaxefotvdznv
198+
qwcgbihrkjlymcjzxefotvdzns
199+
qwugbihrkplymcjuxefytvzzns
200+
qwkgwihrkllymcjaxefotvdzns
201+
qwugbihrkplymcpaxgfogvdzns
202+
qwuvbihrkplymcdaxefotvdmns
203+
qwtgbihrkplqmcjgxefotvdzns
204+
qwuglihrkplnmcjaxefptvdzns
205+
qbugbihrkplymcjawefotidzns
206+
qwegbihrvplymcjaxefqtvdzns
207+
qwugbihrgqlyncjaxefotvdzns
208+
qwugbihrpplymcjaxefotvdeqs
209+
qwugbihrkplypzjaxefbtvdzns
210+
qwugbihrkpkyncjanefotvdzns
211+
qwugbshrkplymcjaxefotfdzys
212+
qwugbihrkpymmcjaxefotzdzns
213+
qwugbphrkplymcjaxefotvdzru
214+
qyugbihrkplamcjjxefotvdzns
215+
qwugbihrmphymcjaxefotedzns
216+
qwuafihrkplymcjaxefozvdzns
217+
qwugwihrkplymcjaxwfotvdzws
218+
qwugbihrkzlymcjaxjfotvdznz
219+
uwugsihrkplypcjaxefotvdzns
220+
qwugbihrkplymcjaxefotudzur
221+
qwugbihrkplymcjoxefotfdzng
222+
qwugbihxkplymcjamebotvdzns
223+
qpugvihrkplymcjaxefotvdzhs
224+
qwugbihrkplyocgaxefotvdzss
225+
qwugbihrkplymcpaqekotvdzns
226+
qwunbihrkplymclaxefitvdzns
227+
qzugbihrkplsmcjaxebotvdzns
228+
qvugbihrkplymcjsxefotvmzns
229+
qwugbihrkprymcyaxkfotvdzns
230+
qwugbihukplymcjaxefotzlzns
231+
qwusbihrkplymcjaxwfotxdzns
232+
qwugbihrwplymcjaxefbtcdzns
233+
qwugbihrkplymcjpxefotkdons
234+
qwugbihrkhlymcjaxefohvwzns
235+
qwukbihrkplymxjaxefotvdzms
236+
qwugbiprkplsmcjaxefotvdznm
237+
qwugbqhrkplymcjawwfotvdzns
238+
qwugbihrkprymcjaxefotvdxnb
239+
qwugbihrkplymcjaxefoivpzos
240+
qwugbuhrkplymcjaxefotvdzsb
241+
qwugblhrcplymcjaxefotvdyns
242+
qtuabihrkplymejaxefotvdzns
243+
qwucbihrkplyvcjaxefotvdznu
244+
rwugbyhrkplymcjaxefotvdzrs
245+
qruybihrkpsymcjaxefotvdzns
246+
qwugbihrjpwymcjaxejotvdzns
247+
qwugbihshplymcjaxefoavdzns
248+
vwugbihrkplymwjaxefotvdznc
249+
qwugbihrkpmymcjvxcfotvdzns
250+
qkxgbihrkplymcjnxefotvdzns

day02/src/main.rs

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
use std::io;
2+
use std::io::{Read};
3+
use std::fs::File;
4+
use std::collections::HashMap;
5+
6+
fn main() -> io::Result<()> {
7+
let mut input = String::new();
8+
let mut f = File::open("day02.txt")?;
9+
10+
f.read_to_string(&mut input)?;
11+
12+
let p1 = part_one(&input)?;
13+
println!("Part 1: {:?}", p1);
14+
15+
Ok(())
16+
}
17+
18+
fn part_one(input: &str) -> io::Result<(u32)> {
19+
let (mut twos, mut threes) = (0, 0);
20+
21+
for line in input.lines() {
22+
let mut freq = HashMap::new();
23+
for ch in line.chars() {
24+
*freq.entry(ch).or_insert(0u32) += 1;
25+
}
26+
27+
if freq.values().any(|v| *v == 2u32) {
28+
twos += 1;
29+
}
30+
31+
if freq.values().any(|v| *v == 3u32) {
32+
threes += 1;
33+
}
34+
}
35+
36+
Ok(twos * threes)
37+
}
38+
39+
fn part_two() {
40+
41+
}
42+
43+
#[cfg(test)]
44+
mod tests {
45+
use super::*;
46+
47+
#[test]
48+
fn test_part_one() {
49+
let input = "abcdef\nbababc\nabbcde\nabcccd\naabcdd\nabcdee\nababab";
50+
assert_eq!(part_one(input).unwrap(), 12);
51+
}
52+
53+
fn test_part_two() {
54+
55+
}
56+
}

0 commit comments

Comments
 (0)