Leetcode 문제 풀이를 코딩 인터뷰를 준비하는 관점에서 어떻게 하면 더 효과적으로
할 수 있을지 생각해 보고, 기준을 정했다.
기술 면접을 준비하기 위해 Leetcode의 문제를 해결하는 방법
효과적인 문제 해결 과정
문제 난이도에 따라 타이머를 설정한다.
-
문제를 이해하는데 5분을 사용한다. 명확하게 이해하기 위해 스스로 질문/답을
해본다.
문제를 보고 중요해 보이는 부분을 적어두고, 생각나는 알고리즘/자료구조 등
접근 방법을 적는다. 이런 방식은, 나중에 나의 경향성을 확인할 수 있다.
비슷한 사고를 하거나 편협한 생각을 하는 것을 객관적으로 깨달을 수 있을
것이다.
나머지 시간은 종이와 펜을 사용해 문제를 푸는데 집중한다.
Solution을 공부하는데 10분을 쓴다. (10분은 권고)
-
Solution을 완벽하게 이해하지 못했더라도, 한 문제에 30-35분 이상 할애하지
않는다.
문제를 풀었던 과정과 결과를 진행 시트에 업데이트한다.
한 주 뒤에 문제를 다시 풀어본다.
문제해결을 위한 전략
-
단순한 brute-force 방식이 바로 떠오르면 더 최적의 솔루션을 생각해 본다.
-
완전히 막혀서 해결책을 찾을 수 없다는 것을 100% 알고 있더라도, 남은 시간은
온전히 집중한다.
- 생각나는 방식이 brute-force가 전부인 경우, 이 코드라도 작성한다.
- 여러 솔루션과 비교하고 학습한다.
-
목표는 구체적으로 정한다. x개의 문제를 해결하고 다음 z개월 동안 총 y개의 딥
포커스 시간을 할애하겠다.