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]
----
최소정수의합
Retrieved from http://wiki.zeropage.org/wiki.php/최소정수의합/나휘동
last modified 2021-02-07 05:31:16