概要
n 個の正整数からなる列が与えられる。
この数列のうち、桁に含まれる 4 または 7 の数が k を超えない項の数を答えよ。
解法
問題定義をそのまま実装すれば解けます。
コード
import Control.Applicative import Control.Monad import Data.List main = do [ n, k ] <- map read . words <$> getLine as <- words <$> getLine let res = length $ filter ( ok k ) as print res ok :: Int -> String -> Bool ok k a = count47 a <= k where count47 :: String -> Int count47 = length . filter ( \c -> c == '4' || c == '7' )