Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View carlwiedemann's full-sized avatar

Carl Wiedemann carlwiedemann

View GitHub Profile
@carlwiedemann
carlwiedemann / day019.rb
Created December 20, 2023 00:28
Advent of Code 2023 day019.rb
require_relative "main"
module Day019
INPUT = File.read('INPUT.txt')
parts = INPUT.split("\n\n")
guides = parts.first.to_lines.map do |guide_line|
guide_pieces = guide_line.split("{")
name = guide_pieces.first
@carlwiedemann
carlwiedemann / day007.rb
Created December 11, 2023 16:59
Advent of Code 2023 day007.rb
require_relative "main"
module Day007
INPUT = File.read('INPUT.txt')
DATA = INPUT.to_lines.map do |line|
cards, bid = line.split_strip(" ")
{
cards: cards,
bid: bid.to_i
@carlwiedemann
carlwiedemann / day008.rb
Created December 11, 2023 16:55
Advent of Code 2023 day008.rb
require_relative "main"
module Day008
INPUT = File.read('INPUT.txt')
lines = INPUT.to_lines
instructions = lines.shift.chars
lines.shift
graph = lines.map do |line|
@carlwiedemann
carlwiedemann / day009.rb
Created December 11, 2023 16:53
Advent of Code 2023 day009.rb
require_relative "main"
module Day009
INPUT = File.read('INPUT.txt')
lines = INPUT.to_lines
sets = lines.map do |line|
line.split(" ").map(&:to_i)
end
@carlwiedemann
carlwiedemann / day011.rb
Created December 11, 2023 16:48
Advent of Code 2023 day011.rb
require_relative "main"
module Day011
INPUT = File.read('INPUT.txt')
grid = INPUT.to_grid
##########
# Part 1 #
##########
@carlwiedemann
carlwiedemann / day010.rb
Created December 11, 2023 16:42
Advent of Code 2023 day010.rb
require_relative "main"
module Day010
INPUT = File.read('INPUT.txt')
grid = INPUT.to_grid
GUIDES = {
"7" => { V.northward => V.westward, V.eastward => V.southward },
"F" => { V.westward => V.southward, V.northward => V.eastward },
@carlwiedemann
carlwiedemann / day006.rb
Created December 6, 2023 16:03
Advent of Code 2023 day006.rb
require_relative "main"
module Day006
INPUT = File.read('INPUT.txt')
lines = INPUT.to_lines
ts = lines.shift.split_strip(":").last.split_strip(" ").map(&:to_i)
ds = lines.shift.split_strip(":").last.split_strip(" ").map(&:to_i)
@carlwiedemann
carlwiedemann / day005.rb
Last active December 6, 2023 14:51
Advent of Code 2023 day005.rb
require_relative "main"
module Day005
INPUT = File.read('INPUT.txt')
lines = INPUT.to_lines
seeds = lines.shift.split(":").last.split_strip(" ").map(&:to_i)
lines.shift
@carlwiedemann
carlwiedemann / day003.rb
Last active December 4, 2023 14:38
Advent of Code 2023 day003.rb
require_relative "main"
module Day003
INPUT = File.read('INPUT.txt')
grid = INPUT.to_grid
##########
# Part 1 #
##########
@carlwiedemann
carlwiedemann / day004.rb
Created December 4, 2023 05:35
Advent of Code 2023 day004.rb
require_relative "main"
module Day004
INPUT = File.read('INPUT.txt')
lines = INPUT.to_lines
result_counts = lines.map do |line|
data = line.split_strip(":").last
winning, mine = data.split_strip("|").map { _1.split_strip(" ").map(&:to_i) }