DEV Community

Discussion on: Daily Challenge #283 - Simple Missing Sum

Collapse
 
n8chz profile image
Lorraine Lee • Edited

Ruby:

def contains?(numbers, n)
  return true if n == 0
  (0...numbers.count).each do |i|
    right = numbers.drop(i+1)
    next if right.include? n
    return true if contains?(numbers.take(i)+right, n-numbers[i])
  end
  false
end

def solve(numbers)
  (1..).each do |n|
    smalls = numbers.select{|i| i <= n}
    next if smalls.include? n
    return n if smalls.sum < n
    return n unless contains?(smalls, n)
  end
end