Refactoring, Added day1
This commit is contained in:
parent
6c0413adf4
commit
47e480311d
250
Cargo.toml
250
Cargo.toml
|
@ -4,3 +4,253 @@ version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d1-1"
|
||||||
|
path = "src/day1/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d1-2"
|
||||||
|
path = "src/day1/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d2-1"
|
||||||
|
path = "src/day2/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d2-2"
|
||||||
|
path = "src/day2/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d3-1"
|
||||||
|
path = "src/day3/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d3-2"
|
||||||
|
path = "src/day3/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d4-1"
|
||||||
|
path = "src/day4/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d4-2"
|
||||||
|
path = "src/day4/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d5-1"
|
||||||
|
path = "src/day5/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d5-2"
|
||||||
|
path = "src/day5/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d6-1"
|
||||||
|
path = "src/day6/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d6-2"
|
||||||
|
path = "src/day6/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d7-1"
|
||||||
|
path = "src/day7/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d7-2"
|
||||||
|
path = "src/day7/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d8-1"
|
||||||
|
path = "src/day8/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d8-2"
|
||||||
|
path = "src/day8/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d9-1"
|
||||||
|
path = "src/day9/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d9-2"
|
||||||
|
path = "src/day9/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d10-1"
|
||||||
|
path = "src/day10/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d10-2"
|
||||||
|
path = "src/day10/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d11-1"
|
||||||
|
path = "src/day11/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d11-2"
|
||||||
|
path = "src/day11/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d12-1"
|
||||||
|
path = "src/day12/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d12-2"
|
||||||
|
path = "src/day12/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d13-1"
|
||||||
|
path = "src/day13/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d13-2"
|
||||||
|
path = "src/day13/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d14-1"
|
||||||
|
path = "src/day14/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d14-2"
|
||||||
|
path = "src/day14/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d15-1"
|
||||||
|
path = "src/day15/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d15-2"
|
||||||
|
path = "src/day15/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d16-1"
|
||||||
|
path = "src/day16/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d16-2"
|
||||||
|
path = "src/day16/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d17-1"
|
||||||
|
path = "src/day17/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d17-2"
|
||||||
|
path = "src/day17/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d18-1"
|
||||||
|
path = "src/day18/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d18-2"
|
||||||
|
path = "src/day18/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d19-1"
|
||||||
|
path = "src/day19/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d19-2"
|
||||||
|
path = "src/day19/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d20-1"
|
||||||
|
path = "src/day20/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d20-2"
|
||||||
|
path = "src/day20/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d21-1"
|
||||||
|
path = "src/day21/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d21-2"
|
||||||
|
path = "src/day21/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d22-1"
|
||||||
|
path = "src/day22/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d22-2"
|
||||||
|
path = "src/day22/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d23-1"
|
||||||
|
path = "src/day23/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d23-2"
|
||||||
|
path = "src/day23/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d24-1"
|
||||||
|
path = "src/day24/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d24-2"
|
||||||
|
path = "src/day24/2.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d25-1"
|
||||||
|
path = "src/day25/1.rs"
|
||||||
|
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "d25-2"
|
||||||
|
path = "src/day25/2.rs"
|
||||||
|
|
31
src/day1/1.rs
Normal file
31
src/day1/1.rs
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#![feature(test)]
|
||||||
|
extern crate test;
|
||||||
|
|
||||||
|
const INPUTS: [&'static str; 2] = [include_str!("./sample.txt"), include_str!("./input.txt")];
|
||||||
|
|
||||||
|
fn parse(input: &'static str) -> Vec<Vec<i64>> {
|
||||||
|
input
|
||||||
|
.trim()
|
||||||
|
.split("\n\n")
|
||||||
|
.map(|set| {
|
||||||
|
set.split('\n')
|
||||||
|
.map(|c| c.trim())
|
||||||
|
.map(|c| c.parse::<i64>().unwrap())
|
||||||
|
.collect()
|
||||||
|
})
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
for input in INPUTS.iter() {
|
||||||
|
let output = parse(input);
|
||||||
|
|
||||||
|
let max = output
|
||||||
|
.into_iter()
|
||||||
|
.map(|c| c.into_iter().sum::<i64>())
|
||||||
|
.max()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
println!("{}", max);
|
||||||
|
}
|
||||||
|
}
|
31
src/day1/2.rs
Normal file
31
src/day1/2.rs
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
use std::cmp::Reverse;
|
||||||
|
|
||||||
|
const INPUTS: [&str; 2] = [include_str!("./sample.txt"), include_str!("./input.txt")];
|
||||||
|
|
||||||
|
fn parse(input: &'static str) -> Vec<Vec<i64>> {
|
||||||
|
input
|
||||||
|
.trim()
|
||||||
|
.split("\n\n")
|
||||||
|
.map(|set| {
|
||||||
|
set.split('\n')
|
||||||
|
.map(|c| c.trim())
|
||||||
|
.map(|c| c.parse::<i64>().unwrap())
|
||||||
|
.collect()
|
||||||
|
})
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
for input in INPUTS.iter() {
|
||||||
|
let output = parse(input);
|
||||||
|
|
||||||
|
let mut sets: Vec<i64> = output
|
||||||
|
.into_iter()
|
||||||
|
.map(|c| c.into_iter().sum::<i64>())
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
sets.select_nth_unstable_by_key(2, |c| Reverse(*c));
|
||||||
|
|
||||||
|
println!("{}", sets.into_iter().take(3).sum::<i64>());
|
||||||
|
}
|
||||||
|
}
|
2239
src/day1/input.txt
Normal file
2239
src/day1/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
16
src/day1/sample.txt
Normal file
16
src/day1/sample.txt
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
1000
|
||||||
|
2000
|
||||||
|
3000
|
||||||
|
|
||||||
|
4000
|
||||||
|
|
||||||
|
5000
|
||||||
|
6000
|
||||||
|
|
||||||
|
7000
|
||||||
|
8000
|
||||||
|
9000
|
||||||
|
|
||||||
|
10000
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user