Monte Carlo Approaches to the Protein Folding Problem