Initial commit for day 1

This commit is contained in:
Andrew R. M 2021-12-01 18:55:48 -05:00
commit 1bfd6c462d
8 changed files with 2076 additions and 0 deletions

2
Gemfile Normal file
View File

@ -0,0 +1,2 @@
ruby '~> 3.0'
source "https://rubygems.org"

14
Gemfile.lock Normal file
View File

@ -0,0 +1,14 @@
GEM
remote: https://rubygems.org/
specs:
PLATFORMS
ruby
DEPENDENCIES
RUBY VERSION
ruby 3.0.2p107
BUNDLED WITH
2.1.4

2
gemset.nix Normal file
View File

@ -0,0 +1,2 @@
{
}

6
nixpkgs.nix Normal file
View File

@ -0,0 +1,6 @@
let
channel-ref = "nixos-21.05";
in
import (fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/${channel-ref}.tar.gz";
}) {}

2
ruby-version.nix Normal file
View File

@ -0,0 +1,2 @@
with (import ./nixpkgs.nix);
pkgs.ruby_3_0

18
shell.nix Normal file
View File

@ -0,0 +1,18 @@
with (import ./nixpkgs.nix);
let
ruby_version = import ./ruby-version.nix;
gems = bundlerEnv {
name = "advent-of-code";
ruby = ruby_version;
gemdir = ./.;
};
in stdenv.mkDerivation {
name = "qa-mds";
buildInputs = [ gems gems.wrappedRuby ];
shellHook = ''
if ! [ $NO_CHANGE_PROMPT ]; then
export PS1='\[\033[1;31m\]λ\[\033[0m\] '
export PS2='\[\033[1;31m\]|\[\033[0m\] '
fi
'';
}

32
src/day1/day1.rb Normal file
View File

@ -0,0 +1,32 @@
inputs = ARGF.read.lines
begin
inputs.map! {|input| Integer(input)}
rescue ArgumentError
puts "An input item wasn't a number, invalid input"
end
larger_than_before = 0
before = nil
inputs.each do |input|
before = input if before.nil?
larger_than_before += 1 if input > before
before = input
end
puts "Amount of measurements larger than before: #{larger_than_before}"
larger_than_previous_window = 0
previous_window = nil
window = []
inputs.each_with_index do |input, index|
unless index+2 >= inputs.size # Handle the last window not overreaching
window = [inputs[index], inputs[index+1], inputs[index+2]]
if previous_window && window.reduce(:+) > previous_window.reduce(:+)
larger_than_previous_window += 1
end
previous_window = window
end
end
puts "Amount of measurements larger than preivous window: #{larger_than_previous_window}"

2000
src/day1/input Executable file

File diff suppressed because it is too large Load Diff