My solution to Q1 used pattern-matching:
input /. {___,x_,___,y_,___,z_,___} /; x+y+z == 2020 :> x y z
which easily coped with the given input data.
That is a nice solution. And it would have been the required approach if they pushed the input size much beyond 200 numbers.
Another nice way of doing problem 1 is to use KnapsackSolve, which is a generalization of the subset-sum problem. For part 1.2, this ends up being quite a bit faster too.
Times@@Pick[nums, KnapsackSolve[({#, 1, 1} &)/@nums, {2020, 3}], 1]