summaryrefslogtreecommitdiff
path: root/day3/src
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-12-05 19:46:06 +0100
committerSanto Cariotti <santo@dcariotti.me>2022-12-05 19:46:06 +0100
commitcf6303a5bc1558ebdb7b467da38f74cd3ac3a9b1 (patch)
tree6292cb239a8cf114179c6e7c8b3015840dfbae6e /day3/src
parent6e10cc2773fcaff64902b13f44443da014f38be7 (diff)
Add 2022
Diffstat (limited to 'day3/src')
-rw-r--r--day3/src/main.rs36
1 files changed, 0 insertions, 36 deletions
diff --git a/day3/src/main.rs b/day3/src/main.rs
deleted file mode 100644
index 10c1f81..0000000
--- a/day3/src/main.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-use std::fs::File;
-use std::io::prelude::*;
-use std::io::BufReader;
-
-fn main() -> Result<(), std::io::Error> {
- let file = File::open("input.txt")?;
- let reader = BufReader::new(&file);
-
- let lines: Vec<_> = reader.lines().map(|x| x.unwrap()).collect::<Vec<String>>();
- let mut bits: Vec<u32> = vec![0; lines[0].len()];
- let half: u32 = (lines.len() / 2) as u32;
- let mut gamma_string = String::new();
- let mut epsilon_string = String::new();
-
- for line in lines {
- for (index, character) in line.chars().enumerate() {
- bits[index] += character.to_digit(10).unwrap();
- }
- }
-
- for bit in bits {
- if bit >= half {
- gamma_string.push('1');
- epsilon_string.push('0');
- } else {
- gamma_string.push('0');
- epsilon_string.push('1');
- }
- }
- let gamma_rate = isize::from_str_radix(&gamma_string, 2).unwrap();
- let epsilon_rate = isize::from_str_radix(&epsilon_string, 2).unwrap();
-
- println!("{}", gamma_rate * epsilon_rate);
-
- Ok(())
-}