Edited at

オフラインどう書く第17回解答 (Haskell)

More than 5 years have passed since last update.

問題はこちら: http://nabetani.sakura.ne.jp/hena/ord17foldcut/

他の方の解答はこちら: http://qiita.com/Nabetani/items/ebd9d7deb30c57447806

使い方

$ ghci Solve.hs

> solve "RRTRB-bl"
Loading package split-0.2.2 ... linking ... done.
6

変数が2つほど余計だったのでコード修正。

本番時のコードは履歴を参照

module Solve17 where

import Data.List.Split

solve :: String -> String
solve input = show . count b $ foldl go (0,0,0,0) a
where [a,b] = splitOn "-" input

go (t,b,l,r) 'T' = (t+b+1,t+b,l,r)
go (t,b,l,r) 'B' = (t+b,t+b+1,l,r)
go (t,b,l,r) 'L' = (t,b,l+r+1,l+r)
go (t,b,l,r) 'R' = (t,b,l+r,l+r+1)

count "bl" (t,b,l,r) = b*l
count "br" (t,b,l,r) = b*r
count "tl" (t,b,l,r) = t*l
count "tr" (t,b,l,r) = t*r