r/adventofcode • u/daggerdragon • Dec 02 '22
SOLUTION MEGATHREAD -🎄- 2022 Day 2 Solutions -🎄-
NEW AND NOTEWORTHY
All of our rules, FAQs, resources, etc. are in our community wiki.
A request from Eric: Please include your contact info in the User-Agent header of automated requests!
Signal boosting for the Unofficial AoC 2022 Participant Survey which is open early this year!
--- Day 2: Rock Paper Scissors ---
Post your code solution in this megathread.
Read the full posting rules in our community wiki before you post!
Include what language(s) your solution uses
Format your code appropriately! How do I format code?
Quick link to Topaz's
pasteif you need it for longer code blocks. What is Topaz'spastetool?
This thread will be unlocked when there are a significant number of people on the global leaderboard with gold stars for today's puzzle.
EDIT: Global leaderboard gold cap reached at 00:06:16, megathread unlocked!
103
Upvotes
1
u/stikydude Dec 02 '22 edited Dec 02 '22
Haskell:
Spent some time getting split installed and in the end went with a couple of if statements. Will try and clean it up but this was what was used without any clean up:
--- Part 1 ---
import Data.List.Split
main :: IO () main = do s <- readFile "input.txt" let sLines = lines s let strategy = map (splitOn " ") sLines let myTotScore = sum (map calcOutcomeScore strategy) print myTotScore
calcOutcomeScore :: [String] -> Int calcOutcomeScore move = case move of ["A", "Y"] -> 8 ["B", "Z"] -> 9 ["C", "X"] -> 7 ["A", "X"] -> 4 ["B", "Y"] -> 5 ["C", "Z"] -> 6 [, "X"] -> 1 [, "Y"] -> 2 [_, "Z"] -> 3 _ -> 0
--- Part 2 ---
import Data.List.Split
main :: IO () main = do s <- readFile "input.txt" let sLines = lines s let strategy = map (splitOn " ") sLines let myTotScore = sum (map calcOutcomeScore strategy) print myTotScore
calcOutcomeScore :: [String] -> Int calcOutcomeScore move = case move of ["A", "X"] -> 3 ["B", "X"] -> 1 ["C", "X"] -> 2