What the best Technique to approach a dynamic programming or greedy algorithm Problem

I have solved all the basic DP questions from GFG. Yet if a new DP problem comes I am unable to solve it. Any suggestions??