달레(대영)님의 본 강의를 들으면서 제가 느낀 가장 효율적인 공부법을 공유합니다.
한 번 쭉 문제를 풀어보면서, 강의를 들어보세요. 아마, 대부분의 사람들이 그냥 알고리즘 문제 풀이 강의네 라고 생각이 들 것 입니다.
중요한 것은 일단 들으면서 못풀겠으면, 풀릴때까지 뇌를 괴롭히지 말고, 강의를 들으세요. 어차피 연습하는 단계인데, 괜히 흥미를 떨어뜨리면서까지 뇌를 괴롭힐 필요가 없고, 달레님은 저렇게 풀었구나~ 하고 넘어가면됩니다.(다만, 따라 적기는 해야합니다.(중요)
진짜 강의의 키포인트는 2회차 부터인데요. 두번째 강의를 들을 때는, 문제를 해설을 듣지않고, 문제를 일단 풀어보세요. 그리고 풀면서, 주석이든, 패드든 그림을 그려가면서 풀어보세요.
brute-force하게 풀기 시작해서, 한단계씩 최적화하는것이 핵심입니다.
1. 최적화 과정에서 왜 그런 접근법이 생각났는지 꼭 어디든 정리해두세요. 이미 한번 답안을 본 코드는 머리 속에서 잊혀지지 않는다고 하지만, 스스로 속이는 셈 치고, 각인된 최적화 생각 흐름도 괜찮으니 생각의 인과관계를 적으세요.
2. 못풀겠다면, 어디부분에서 다음 단계로 넘어가는데 막혔는지 꼭 자세하게 적으세요. 그리고, 강의를 들으면서, 그 단계를 뚫게되는 달레님의 생각을 적고, 같이 코드를 따라 쳐보세요. 암기가 되어도 좋습니다.(완벽한 이해와 완벽한 암기는 본인의 뇌도 구분을 하지 못합니다.)
3. 3회차를 시작하기 전에, 지금까지 적어놓았던 본인의 오답노트 비슷한 것을 확실히 공부하세요. 그리고, 시간은 easy는 20분 medium은 40분 hard는 60분 정도 제한을 두고, 리트코드에서 사고과정을 입으로 설명하거나, 주석으로 설명하면서, 풀어보세요. 만약 설명하는 과정이 순탄하지않게 흘러가거나, 막히는 부분이 생기면, 그게 약점이라는 의미이기 때문에, 다시한번 해당 문제 강의를 듣고, 리트코드의 비슷한 유형의 문제를 반복적으로 풀면서 패턴화 시키면 약점을 보완하는데 좋습니다.
늘 후배 개발자들에게 도움을 주시는데, 진심이신 대영님! 다시한번 감사드립니다!