概要
一つの変数 X とそれに対するインクリメント・デクリメントが可能な特殊な言語がある。
この言語のステートメントが n 行与えられるので、最終的な X の値を出力せよ。
解法
文字 'X' を取り除くと、ステートメントは "++" か "--" のいずれかになります。
"++" の数から "--" の数を引いたものが答えです。
コード
import Control.Applicative import Control.Monad import Data.List main = do getLine statements <- lines . filter ( /= 'X' ) <$> getContents let plus = length $ filter ( == "++" ) $ statements minus = length $ filter ( == "--" ) $ statements print $ plus - minus