Unlocking the Potential of Large Language Models in Code Generation: Insights from Recent Research