Haskell/2024/01: add solution

This commit is contained in:
Felix Bargfeldt 2024-12-01 06:55:39 +01:00
parent a3438f0655
commit d4b8e7f2fa
Signed by: Defelo
GPG key ID: 2A05272471204DD3
2 changed files with 22 additions and 2 deletions

20
Haskell/2024/01.hs Normal file
View file

@ -0,0 +1,20 @@
import Data.Function
import Data.List
import Lib
type Input = [(Int, Int)]
main :: IO ()
main = aoc 2024 1 setup solve1 solve2 ["1"]
solve1 :: Input -> Int
solve1 = sum . map abs . fork (on (zipWith (-)) sort) (map fst) (map snd)
solve2 :: Input -> Int
solve2 inp = sum $ map ((*) <*> (`count` right)) left
where
(left, right) = fork (,) (map fst) (map snd) inp
count a = length . filter (== a)
setup :: String -> Input
setup = map (listToTuple . map read . words) . lines

View file

@ -9,10 +9,10 @@
|[2021](https://adventofcode.com/2021/leaderboard)|**136**|438|13.41% (of 1014)|0.0532% (of &ge;255548)|
|[2020](https://adventofcode.com/2020/leaderboard)|**621**|46|65.23% (of 952)|0.3146% (of &ge;197402)|
## [2024](https://adventofcode.com/2024) ([<img height=18 src=".assets/rs.svg"> Rust](Rust/2024): 1/25 | [<img height=18 src=".assets/ua.png"> Uiua](Uiua/2024): 1/25)
## [2024](https://adventofcode.com/2024) ([<img height=18 src=".assets/rs.svg"> Rust](Rust/2024): 1/25 | [<img height=18 src=".assets/hs.svg"> Haskell](Haskell/2024): 1/25 | [<img height=18 src=".assets/ua.png"> Uiua](Uiua/2024): 1/25)
|Mo|Tu|We|Th|Fr|Sa|Su|
|-|-|-|-|-|-|-|
|||||||[**1**](https://adventofcode.com/2024/day/1) [<img height=12 src=".assets/rs.svg">](Rust/2024/01.rs "Rust solution for 2024/01") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgriipwo4oqc4ouV4omgQCAuKeKJoEBcbi4KCuKKgygvK-KJoSjDly8r4oq4PTop4oqZwqR8LyvijLUt4oip4o2GKcKw4oqf4o2JCg== "Uiua solution for 2024/01")|
|||||||[**1**](https://adventofcode.com/2024/day/1) [<img height=12 src=".assets/rs.svg">](Rust/2024/01.rs "Rust solution for 2024/01") [<img height=12 src=".assets/hs.svg">](Haskell/2024/01.hs "Haskell solution for 2024/01") [<img height=12 src=".assets/ua.png">](https://uiua.org/pad?src=JnNjCgriipwo4oqc4ouV4omgQCAuKeKJoEBcbi4KCuKKgygvK-KJoSjDly8r4oq4PTop4oqZwqR8LyvijLUt4oip4o2GKcKw4oqf4o2JCg== "Uiua solution for 2024/01")|
|[**2**](https://adventofcode.com/2024/day/2)|[**3**](https://adventofcode.com/2024/day/3)|[**4**](https://adventofcode.com/2024/day/4)|[**5**](https://adventofcode.com/2024/day/5)|[**6**](https://adventofcode.com/2024/day/6)|[**7**](https://adventofcode.com/2024/day/7)|[**8**](https://adventofcode.com/2024/day/8)|
|[**9**](https://adventofcode.com/2024/day/9)|[**10**](https://adventofcode.com/2024/day/10)|[**11**](https://adventofcode.com/2024/day/11)|[**12**](https://adventofcode.com/2024/day/12)|[**13**](https://adventofcode.com/2024/day/13)|[**14**](https://adventofcode.com/2024/day/14)|[**15**](https://adventofcode.com/2024/day/15)|
|[**16**](https://adventofcode.com/2024/day/16)|[**17**](https://adventofcode.com/2024/day/17)|[**18**](https://adventofcode.com/2024/day/18)|[**19**](https://adventofcode.com/2024/day/19)|[**20**](https://adventofcode.com/2024/day/20)|[**21**](https://adventofcode.com/2024/day/21)|[**22**](https://adventofcode.com/2024/day/22)|