From 6835506dea6b3c55ed463ef49049d70c6c6cedc9 Mon Sep 17 00:00:00 2001 From: Lucas Schwiderski Date: Thu, 9 Dec 2021 09:01:34 +0100 Subject: [PATCH] feat: Day 1 --- puzzles/01_1/main.rb | 16 ++++++++++++++++ puzzles/01_2/main.rb | 37 +++++++++++++++++++++++++++++++++++++ run.rb | 13 +++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 puzzles/01_1/main.rb create mode 100644 puzzles/01_2/main.rb create mode 100755 run.rb diff --git a/puzzles/01_1/main.rb b/puzzles/01_1/main.rb new file mode 100644 index 0000000..8bbbdb6 --- /dev/null +++ b/puzzles/01_1/main.rb @@ -0,0 +1,16 @@ +def run(f) + increments = 0 + previous = nil + + f.each do |line| + measurement = Integer(line) + + if previous and measurement > previous + increments += 1 + end + + previous = measurement + end + + return increments +end diff --git a/puzzles/01_2/main.rb b/puzzles/01_2/main.rb new file mode 100644 index 0000000..44c10d3 --- /dev/null +++ b/puzzles/01_2/main.rb @@ -0,0 +1,37 @@ +def shift(arr) + arr[0] = arr[1] + arr[1] = arr[2] + arr[2] = arr[3] + arr[3] = [] +end + +def push(arr, val) + shift(arr) + + if arr[1] + arr[1] << val + end + + if arr[2] + arr[2] << val + end + + arr[3] << val +end + +def run(f) + increments = 0 + buffer = [] + + f.each do |line| + measurement = Integer(line) + + push(buffer, measurement) + + if buffer[0] and buffer[1] and buffer[0].length() == 3 and buffer[1].length() == 3 and buffer[1].sum() > buffer[0].sum() + increments += 1 + end + end + + return increments +end diff --git a/run.rb b/run.rb new file mode 100755 index 0000000..4302903 --- /dev/null +++ b/run.rb @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby + +puzzle = (ARGV[0] ? ARGV[0] : '1').rjust(2, '0') +part = ARGV[1] ? ARGV[1] : '1' + +require './puzzles/%s_%s/main.rb' % [puzzle, part] + +f = File.open('./puzzles/%s_%s/input.txt' % [puzzle, part], 'r') + +res = run f +puts "Result: " + res.to_s + +f.close