cange folder names
This commit is contained in:
83
day02/src/main.rs
Normal file
83
day02/src/main.rs
Normal file
@@ -0,0 +1,83 @@
|
||||
use std::{fs, cmp::max};
|
||||
|
||||
fn main() {
|
||||
let input = fs::read_to_string("input.txt").unwrap();
|
||||
let input: Vec<_> = input.split('\n').collect();
|
||||
let mut sum = 0;
|
||||
for line in input {
|
||||
let split:Vec<_> = line.split(':').collect();
|
||||
let rounds: Vec<_> = split.last().unwrap().split(';').collect();
|
||||
let rounds: Vec<_> = rounds.iter()
|
||||
.map(|x| {
|
||||
x.split(',').collect::<Vec<_>>()
|
||||
}).collect();
|
||||
|
||||
let rounds: Vec<_> = rounds.iter()
|
||||
.map(|x| {
|
||||
x.iter().map(|x| {
|
||||
x.trim().split(' ').collect::<Vec<_>>()
|
||||
}).collect::<Vec<_>>()
|
||||
}).collect();
|
||||
let (mut r_max, mut g_max, mut b_max) = (0, 0, 0);
|
||||
for round in rounds {
|
||||
for set in round {
|
||||
let color = set.last().unwrap();
|
||||
let num: i32 = set.first().unwrap().parse().unwrap();
|
||||
match *color {
|
||||
"red" => r_max = max(num, r_max),
|
||||
"blue" => b_max = max(num, b_max),
|
||||
"green" => g_max = max(num, g_max),
|
||||
&_ => todo!()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//println!("{}", r_max);
|
||||
sum += r_max * g_max * b_max;
|
||||
}
|
||||
println!("{}", sum);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// use std::fs;
|
||||
|
||||
// fn main() {
|
||||
// let input = fs::read_to_string("input.txt").unwrap();
|
||||
// let input: Vec<_> = input.split('\n').collect();
|
||||
// let mut game_id = 0;
|
||||
// let (r_max, g_max, b_max) = (12, 13, 14);
|
||||
// let mut sum = 0;
|
||||
// for line in input {
|
||||
// game_id += 1;
|
||||
// let split:Vec<_> = line.split(':').collect();
|
||||
// let rounds: Vec<_> = split.last().unwrap().split(';').collect();
|
||||
// let rounds: Vec<_> = rounds.iter().map(|x| x.split(',').collect::<Vec<_>>()).collect();
|
||||
// let rounds: Vec<_> = rounds.iter().map(|x| x.iter().map(|x| x.trim().split(' ').collect::<Vec<_>>()).collect::<Vec<_>>()).collect();
|
||||
// let mut sad = false;
|
||||
|
||||
// for round in rounds {
|
||||
// let (mut r_cur, mut g_cur, mut b_cur) = (0, 0, 0);
|
||||
// for set in round {
|
||||
// let color = set.last().unwrap();
|
||||
// let num: i32 = set.first().unwrap().parse().unwrap();
|
||||
// match *color {
|
||||
// "red" => r_cur += num,
|
||||
// "blue" => b_cur += num,
|
||||
// "green" => g_cur += num,
|
||||
// &_ => todo!()
|
||||
// }
|
||||
// }
|
||||
|
||||
// if r_cur > r_max || b_cur > b_max || g_cur > g_max {
|
||||
// sad = true;
|
||||
// }
|
||||
// }
|
||||
// if !sad {
|
||||
// sum += game_id;
|
||||
// }
|
||||
// }
|
||||
// println!("{}", sum);
|
||||
|
||||
// }
|
Reference in New Issue
Block a user