3
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
use std::fs;
|
||||
|
||||
fn calc(input: Vec<&str>) {
|
||||
let mut vec: Vec<_> = [].to_vec();
|
||||
let mut score: i32 = 0;
|
||||
let strinj = Vec::from(('a'..='z').chain('A'..='Z').collect::<Vec<char>>());
|
||||
|
||||
for i in input.iter() {
|
||||
let string = i.split_at(i.len() / 2);
|
||||
|
||||
string.0.chars().any(|c| {
|
||||
if string.1.contains(c) { vec.push(c); };
|
||||
string.1.contains(c)
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
for i in vec.iter() {
|
||||
score = score + strinj.iter().position(|&r| r == *i).unwrap() as i32 + 1;
|
||||
}
|
||||
|
||||
println!("{:?}", score)
|
||||
}
|
||||
|
||||
fn badge(input: Vec<&str>) {
|
||||
let strinj = Vec::from(('a'..='z').chain('A'..='Z').collect::<Vec<char>>());
|
||||
let chunked: Vec<_> = input.chunks(3).map(|x| x.to_vec()).collect();
|
||||
let mut vec: Vec<_> = [].to_vec();
|
||||
let mut score: i32 = 0;
|
||||
|
||||
for a in chunked.iter() {
|
||||
|
||||
a[0].chars().any(|c| {
|
||||
|
||||
if a[1].contains(c) && a[2].contains(c) { vec.push(c); true } else { false }
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
for i in vec.iter() {
|
||||
score = score + strinj.iter().position(|&r| r == *i).unwrap() as i32 + 1;
|
||||
}
|
||||
|
||||
println!("{:?}", score)
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let input = fs::read_to_string("input.txt").expect("fuck me sideways");
|
||||
let result: Vec<_> = input.split("\n").collect();
|
||||
|
||||
calc(result.clone());
|
||||
badge(result);
|
||||
}
|
||||
Reference in New Issue
Block a user