저번에 파이썬으로 짠거 하스켈로 다시 짬
import Data.List
combinations k ns = filter ((k==).length) $ subsequences ns
psp ns = [ x | k <- [1..length ns], x <- combinations (k-1) ns ]
part a k s
| k == 1 = [s++[a]]
| otherwise = [x | r <- psp a', x <- part (a'\\r) (k-1) (s++[[m]++r])]
where
a' = tail a
m = minimum a
main = do
mapM print (part [0..6] 3 [])
print (length (part [0..6] 3 []))
mapM이나 combinations 같은건 내 레벨이 아닌거 같아서 복붙함
99 questions/Solutions/26 - HaskellWiki
[[0],[1],[2,3,4,5,6]]
[[0],[1,2],[3,4,5,6]]
[[0],[1,3],[2,4,5,6]]
[[0],[1,4],[2,3,5,6]]
[[0],[1,5],[2,3,4,6]]
...
[[0,1,3,5,6],[2],[4]]
[[0,2,3,5,6],[1],[4]]
[[0,1,4,5,6],[2],[3]]
[[0,2,4,5,6],[1],[3]]
[[0,3,4,5,6],[1],[2]]
301
http://hilite.me/
ㄳ
하알못이라 댓글삭제함
내가 하알못이라는 말임 ㄷㄷ
Combinations 먼 뜻이지 저거 ㄷㄷ