Compare commits

..

No commits in common. "2b85cd754b113a76608b5e33c5666114790b4fe8" and "dab145d2d40ae0934c7911ae1eb55c9ab445f1be" have entirely different histories.

9 changed files with 3 additions and 2142 deletions

6
Cargo.lock generated
View file

@ -3,9 +3,5 @@
version = 3 version = 3
[[package]] [[package]]
name = "day1" name = "helloworld"
version = "0.1.0"
[[package]]
name = "day2"
version = "0.1.0" version = "0.1.0"

View file

@ -1,3 +1,3 @@
[workspace] [workspace]
members = ["day1", "day2"] members = ["day1"]
resolver = "2" resolver = "2"

File diff suppressed because it is too large Load diff

View file

@ -1,11 +1,3 @@
mod part1;
mod part2;
fn main() { fn main() {
println!("Hello, world!");
part1::part1();
part2::part2();
} }

View file

@ -1,37 +0,0 @@
use std::fs;
pub fn part1() {
let file_contents = fs::read_to_string("./input.txt").unwrap();
let sum: i64 = file_contents
.lines()
.map(|x| sum_first_last(x))
.sum::<i64>();
println!("Answer is: {}", sum);
}
fn sum_first_last(input: &str) -> i64 {
let mut first: i64 = -64;
let mut last: i64 = -64;
let _: Vec<_> = input
.chars()
.map(|x| {
if char::is_digit(x, 10) {
if first == -64 {
first = char::to_digit(x, 10).unwrap() as i64;
} else {
last = char::to_digit(x, 10).unwrap() as i64;
}
}
}).collect();
if first == -64 {
first = 0;
}
if last == -64 {
last = first.clone();
}
return first * 10 + last;
}

View file

@ -1,80 +0,0 @@
use std::fs;
pub fn part2() {
let file_contents = fs::read_to_string("./input.txt").unwrap();
let sum: i64 = file_contents
.lines()
.map(|x| sum_first_last(x))
.sum::<i64>();
println!("Answer is: {}", sum);
}
fn sum_first_last(input: &str) -> i64 {
let mut first: i64 = -64;
let mut last: i64 = -64;
let _: Vec<_> = input
.lines()
.map(|line| {
// if !line.contains(["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]){
for n in 0..line.len() {
if char::is_digit(line.chars().nth(n).unwrap(), 10){
if first == -64 {
first = char::to_digit(line.chars().nth(n).unwrap(), 10).unwrap() as i64;
} else {
last = char::to_digit(line.chars().nth(n).unwrap(), 10).unwrap() as i64;
}
} else {
let val = get_str_num(line.get(n..).unwrap());
match val {
Some(val) => {
if first == -64 {
first = val;
} else {
last = val;
}
},
None => {}
};
}
}
}).collect();
if first == -64 {
first = 0;
}
if last == -64 {
last = first.clone();
}
return first * 10 + last;
}
fn get_str_num(x: &str) -> Option<i64> {
// check timing of branch pre-check version
if x.starts_with("one") {
Some(1)
} else if x.starts_with("two") {
Some(2)
} else if x.starts_with("three") {
Some(3)
} else if x.starts_with("four") {
Some(4)
} else if x.starts_with("five") {
Some(5)
} else if x.starts_with("six") {
Some(6)
} else if x.starts_with("seven") {
Some(7)
} else if x.starts_with("eight") {
Some(8)
} else if x.starts_with("nine") {
Some(9)
} else {
None
}
}

View file

@ -1,8 +0,0 @@
[package]
name = "day2"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

File diff suppressed because it is too large Load diff

View file