input: Write a function to separate an array into two lists based on a predicate function.
  assert separate_array([1, 2, 3, 4, 5, 6, 7], lambda x: x < 5) == ([1, 2, 3, 4], [5, 6, 7])
  assert separate_array([10, 20, 30, 15, 25, 5], lambda x: x >= 15) == ([20, 30, 15, 25], [10, 5])
  assert separate_array([100, 200, 50, 75, 25, 300], lambda x: x >= 100) == ([100, 200, 300], [50, 75, 25])
output: def separate_array(arr, predicate):
      list_true = []
      list_false = []
      for element in arr:
          if predicate(element):
              list_true.append(element)
          else:
              list_false.append(element)
      return list_true, list_false