오늘부터 리트코드 기준 Hard 문제를 쉽게 풀겠다는 목표를 가지고 알고리즘 풀기에 도전해 볼려고합니다. GPT의 도움을 받아서 우선 아래와 같은 간단한 루틴을 짜보았습니다. 몇달 도전해보고 부족한 부분이 있으면 보안할려고 합니다.
주간 루틴:
월요일, 수요일, 금요일: 미디엄 문제
화요일, 목요일, 토요일: 하드 문제
일요일: 복습 및 복습 문제 풀이
일일 루틴:
- 기본 준비 (10-15분)
- 개념 복습: 오늘 풀 문제와 관련된 자료구조나 알고리즘의 기본 개념을 복습합니다.
- 문제 읽기: 리트코드 문제를 천천히 읽고 요구 사항을 정확히 이해합니다.
- 문제 풀이 (60-90분)
- 미디엄/하드 문제 풀기: 문제를 해결합니다.
- 미디엄 문제: 45분 안에 해결하도록 목표를 세웠습니다.
- 하드 문제: 60~90분을 할애할 수 있습니다. 그래도 해결되지 않으면 해설을 참고해 문제 해결 방법을 익힙니다.
- 문제 해결 후 복기: 풀이 과정을 되돌아보고, 더 효율적인 방법이 있었는지 검토합니다.
- 코드 리뷰 (10-20분)
- 다른 사람의 풀이 분석: 리트코드 디스커션에서 다른 사람들의 풀이를 보고 더 나은 방법을 배웁니다.
- 복습 노트 작성: 중요한 포인트나 새로운 개념을 노트에 정리합니다.
- 테스트 케이스 추가 (10-15분)
- 엣지 케이스 다루기: 다양한 입력에 대해 코드가 잘 동작하는지 확인합니다. 특히 하드 문제에서 발생할 수 있는 엣지 케이스에 집중합니다.
- 주간 복습 및 실전 대비 (일요일)
- 복습 문제 풀기: 이번 주에 풀었던 문제 중 기억이 잘 나지 않거나 어려웠던 문제를 다시 풀어봅니다.
- 실전 모의 테스트: 2-3개의 문제를 정해 1.5~2시간 동안 실전처럼 푸는 연습을 합니다.
추가 팁:
- 시뮬레이션 인터뷰: 일주일에 한 번, LeetCode의 Mock Interview 기능이나 비슷한 온라인 서비스를 이용해 시뮬레이션 인터뷰를 진행합니다.
- 네트워크와 CS 기초 지식 공부: FAANG 인터뷰는 알고리즘 문제 외에도 네트워크, 운영체제, 시스템 디자인 같은 CS 기초 지식에 대한 질문이 포함될 수 있습니다. 매일 30분 정도를 이 주제들에 투자합니다.