types of problem solving in psychology