paizaでmod7占い(ランク S 相当)やってみた 2

前回に引き続き Paizaの mod7占い
https://paiza.jp/learning/mod7

前回Pythonでitertools使ってタイムアウトになり
他に書けるの言語なんて、JS, Ruby, PHP ぐらいだからどれ選んでも遅い
LLじゃない言語っていうといま入門読んでる Haskell しか・・・

試しに書いてみた

import Control.Monad

combinations :: Int -> [a] -> [[a]]
combinations _ [] = []
combinations 1 xs = [[x] | x <- xs]
combinations n (x:xs) = [x:y | y <- combinations (n-1) xs] ++ combinations n xs

main::IO()
main = do
    n <- readLn :: IO Int
    ns <- replicateM n readLn :: IO [Int]
    print $ length [x | x <- combinations 3 ns, sum(x) `mod` 7 == 0]

f:id:ria0130:20151125120312p:plain

入門から始めてるのにHaskellで出来るわけないか・・・

paizaコーディングスキルチェックの各言語のバージョン、環境情報 | ITプログラマー・エンジニア転職のpaiza
Pythonより実行速度早いからって書いてみたけど、ちゃんと言語ごとに制限時間設けられてて
結局クリアできないっていう