4th problem part 1 done !
This commit is contained in:
		
					parent
					
						
							
								83c16d7fb7
							
						
					
				
			
			
				commit
				
					
						befbc009cc
					
				
			
		
					 2 changed files with 46 additions and 1 deletions
				
			
		|  | @ -1,4 +1,4 @@ | ||||||
| use advent_of_code::{prob1, prob2, prob3}; | use advent_of_code::{prob1, prob2, prob3, prob4}; | ||||||
| 
 | 
 | ||||||
| fn main() { | fn main() { | ||||||
|     { |     { | ||||||
|  | @ -23,4 +23,9 @@ fn main() { | ||||||
|         let max_part2 = prob3::solve_part2(file_path); |         let max_part2 = prob3::solve_part2(file_path); | ||||||
|         println!("Solution for problem 3 part 2: {max_part2}"); |         println!("Solution for problem 3 part 2: {max_part2}"); | ||||||
|     } |     } | ||||||
|  |     { | ||||||
|  |         let file_path = "prob4_part1.txt"; | ||||||
|  |         let max_part1 = prob4::solve_part1(file_path); | ||||||
|  |         println!("Solution for problem 4 part 1: {max_part1}"); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | fn mutual_inclusion(first_pair: &[u32], second_pair: &[u32]) -> bool { | ||||||
|  |     (first_pair[0] <= second_pair[0] && first_pair[1] >= second_pair[1]) | ||||||
|  |         || (second_pair[0] <= first_pair[0] && second_pair[1] >= first_pair[1]) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | pub fn solve_part1(file_path: &str) -> i32 { | ||||||
|  |     let result = std::fs::read_to_string(file_path) | ||||||
|  |         .expect("Please provide a text file as an argument.") | ||||||
|  |         .lines() | ||||||
|  |         .map(|line| { | ||||||
|  |             let tmp = line.split(',').collect::<Vec<&str>>(); | ||||||
|  |             let firs_pair = tmp | ||||||
|  |                 .first() | ||||||
|  |                 .expect("First character error") | ||||||
|  |                 .split('-') | ||||||
|  |                 .map(|first_split| { | ||||||
|  |                     first_split | ||||||
|  |                         .parse::<u32>() | ||||||
|  |                         .expect("Parsing number in first pair failed") | ||||||
|  |                 }) | ||||||
|  |                 .collect::<Vec<u32>>(); | ||||||
|  |             let second_pair = tmp | ||||||
|  |                 .last() | ||||||
|  |                 .expect("First character error") | ||||||
|  |                 .split('-') | ||||||
|  |                 .map(|first_split| { | ||||||
|  |                     first_split | ||||||
|  |                         .parse::<u32>() | ||||||
|  |                         .expect("Parsing number in first pair failed") | ||||||
|  |                 }) | ||||||
|  |                 .collect::<Vec<u32>>(); | ||||||
|  |             if mutual_inclusion(&firs_pair, &second_pair) { | ||||||
|  |                 1 | ||||||
|  |             } else { | ||||||
|  |                 0 | ||||||
|  |             } | ||||||
|  |         }) | ||||||
|  |         .collect::<Vec<i32>>(); | ||||||
|  |     result.iter().sum() | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue