Sha256: db693404aae6db58e2ac0a249db284ae81b1efa80dd0b9466576d46e47975e65

Contents?: true

Size: 503 Bytes

Versions: 262

Compression:

Stored size: 503 Bytes

Contents

module Change

let minimalCoins coins map target =
    coins
    |> List.filter (fun x -> x <= target)
    |> List.map (fun x -> x :: Map.find (target - x) map)
    |> List.sortBy List.length
    |> List.tryHead

let updateMinimalCoinsMap coins map target = 
    match minimalCoins coins map target with
    | Some x -> Map.add target x map
    | None   -> map

let change target coins = 
    [1..target]
    |> List.fold (updateMinimalCoinsMap coins) (Map.ofList [(0, [])])
    |> Map.tryFind target

Version data entries

262 entries across 262 versions & 1 rubygems

Version Path
trackler-2.1.0.47 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.46 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.45 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.44 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.43 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.42 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.41 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.40 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.39 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.38 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.37 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.36 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.34 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.33 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.32 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.31 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.30 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.29 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.28 tracks/fsharp/exercises/change/Example.fs
trackler-2.1.0.27 tracks/fsharp/exercises/change/Example.fs