From 926b0949d12588641f29836a6e41712b3237b1b9 Mon Sep 17 00:00:00 2001 From: j-james Date: Wed, 30 Nov 2022 22:48:57 -0800 Subject: Day One --- 2022/nim/day01/src/main.nim | 11 +++++++++++ 2022/rust/day01/Cargo.lock | 7 +++++++ 2022/rust/day01/Cargo.toml | 8 ++++++++ 2022/rust/day01/src/main.rs | 14 ++++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 2022/nim/day01/src/main.nim create mode 100644 2022/rust/day01/Cargo.lock create mode 100644 2022/rust/day01/Cargo.toml create mode 100644 2022/rust/day01/src/main.rs (limited to '2022') diff --git a/2022/nim/day01/src/main.nim b/2022/nim/day01/src/main.nim new file mode 100644 index 0000000..ebdd5e7 --- /dev/null +++ b/2022/nim/day01/src/main.nim @@ -0,0 +1,11 @@ +# Day One: Calorie Counting +import std/[os, strutils, sequtils, algorithm] + +let input: seq[seq[int]] = paramStr(1).readFile().strip().split("\n\n") + .mapIt(it.strip().split("\n").map(parseInt)) + +let elves = input.mapIt(it.foldl(a+b, 0)) +echo elves.foldl(max(a,b), 0) + +let sorted = elves.sorted(cmp[int], Descending) +echo sorted[0] + sorted[1] + sorted[2] diff --git a/2022/rust/day01/Cargo.lock b/2022/rust/day01/Cargo.lock new file mode 100644 index 0000000..683c0b9 --- /dev/null +++ b/2022/rust/day01/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day01" +version = "0.1.0" diff --git a/2022/rust/day01/Cargo.toml b/2022/rust/day01/Cargo.toml new file mode 100644 index 0000000..5a61072 --- /dev/null +++ b/2022/rust/day01/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "day01" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2022/rust/day01/src/main.rs b/2022/rust/day01/src/main.rs new file mode 100644 index 0000000..d8a6b9c --- /dev/null +++ b/2022/rust/day01/src/main.rs @@ -0,0 +1,14 @@ +use std::env; +use std::fs; + +fn main() { + let args = env::args().nth(1).unwrap(); + let mut input = fs::read_to_string(args).unwrap().trim().split("\n\n").map(|x| x.trim().split("\n") + .map(|x| x.parse::().unwrap()).collect()).collect::>>().iter() + .map(|x| x.iter().fold(0, |x,y| x + y)).collect::>(); + // println!("{:?}", input); + println!("{}", input.iter().fold(0, |x,y| x.max(*y))); + + input.sort_by(|x,y| y.cmp(x)); + println!("{}", input[0] + input[1] + input[2]); +} -- cgit v1.2.3-70-g09d2