|
|
@@ -9,25 +9,56 @@ fn main() {
|
|
|
let file = File::open(filename).unwrap();
|
|
|
let reader = BufReader::new(file);
|
|
|
let mut sum: u32 = 0;
|
|
|
+ let mut sum2: u32 = 0;
|
|
|
+ let mut cnt: u32 = 0;
|
|
|
+ let mut first_line = String::new();
|
|
|
+ let mut list = Vec::new();
|
|
|
for(index,line) in reader.lines().enumerate(){
|
|
|
+ cnt += 1;
|
|
|
let line = line.unwrap();
|
|
|
let length = line.len();
|
|
|
let part_one = line.substring(0,length/2);
|
|
|
let part_two = line.substring(length/2,length);
|
|
|
- println!("{part_one}");
|
|
|
- println!("{part_two}");
|
|
|
for c in part_one.chars(){
|
|
|
let pos = part_two.find(c);
|
|
|
if pos != None{
|
|
|
let prio = give_prio(c);
|
|
|
sum += prio;
|
|
|
- println!("{c}");
|
|
|
- println!("{prio}");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ match cnt {
|
|
|
+ 1 => {
|
|
|
+ first_line = line.clone();
|
|
|
+ },
|
|
|
+ 2 => {
|
|
|
+ println!("first: {first_line}");
|
|
|
+ println!("second: {line}");
|
|
|
+ for c in line.chars(){
|
|
|
+ if first_line.find(c) != None{
|
|
|
+ //println!("in both {c}");
|
|
|
+ list.push(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ 3 => {
|
|
|
+ for c in &list{
|
|
|
+ println!("third: {line}");
|
|
|
+ if line.find(*c) != None{
|
|
|
+ sum2 += give_prio(*c);
|
|
|
+ println!("in all 3: {c}");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cnt = 0;
|
|
|
+ list = Vec::new();
|
|
|
+ },
|
|
|
+ _ => println!("that counter should not be anything other than 1-3")
|
|
|
+ }
|
|
|
}
|
|
|
- println!("Sum part1: {sum}")
|
|
|
+ println!("Sum part1: {sum}");
|
|
|
+ println!("Sum part2: {sum2}");
|
|
|
}
|
|
|
|
|
|
|