2022 day 02 in Clojure

This commit is contained in:
aru 2022-12-04 18:29:13 +01:00
parent 552a542252
commit 07164040ae
2 changed files with 61 additions and 0 deletions

3
2022/02/example Normal file
View File

@ -0,0 +1,3 @@
A Y
B X
C Z

58
2022/02/src/day02.clj Normal file
View File

@ -0,0 +1,58 @@
(ns day02
(:require
[clojure.string :as str]))
;; A, X - 1 Rock
;; B, Y - 2 Paper
;; C, Z - 3 Scissors
;;
;; Lose - 0
;; Draw - 3
;; Win - 6
(def score-table
{"B X" 1
"C Y" 2
"A Z" 3
"A X" 4
"B Y" 5
"C Z" 6
"C X" 7
"A Y" 8
"B Z" 9})
(defn part1 [games]
(->> games
(map score-table)
(apply +)))
;; X lose
;; Y draw
;; Z win
(def part2-map
{"A X" "A Z"
"A Y" "A X"
"A Z" "A Y"
"B X" "B X"
"B Y" "B Y"
"B Z" "B Z"
"C X" "C Y"
"C Y" "C Z"
"C Z" "C X"})
(defn part2 [games]
(->> games
(map part2-map)
part1))
(comment
(def input (str/split-lines (slurp "example")))
(= 15 (part1 input))
(= 12 (part2 input))
)
(defn main [& _args]
(let [input (str/split-lines (slurp "input"))]
(do
(println (str "Part 1: " (part1 input)))
(println (str "Part 2: " (part2 input))))))