1차 ¶
매우 마음에 들지 않는 방법...
~cpp minsum s n | sum [1..n] < s = minsum s (n+1) | otherwise = (n, sum [1..n])
2차 ¶
sum을 공식을 이용했지만...여전히 마음에 들지 않아요
~cpp naturalSum n = n * (n+1) `div` 2 minsum s n | naturalSum n < s = minsum s (n+1) | otherwise = (n, naturalSum n)minsum 3000 1
3차 ¶
최소정수의합/송지훈 방식, 조건제시법과 lazy evaluation 이용
최소정수의합
~cpp take 1 [(n,naturalSum n)| n<-[1..], naturalSum n >= s]----
최소정수의합