If you get a timeout on problem 2, it's usually because you chose the wrong data structure or used nested loops. I solve problems by organizing them by type on LeetCode, and sharpened my skills with Baekjoon Gold-level problems. Study groups are good, but it's important to develop the habit of considering efficiency from the start.