알고리즘 문제 풀이, 공부법에 대한 고민

노현아·2024년 4월 5일

문제점

  • 풀리지 않는 문제에 오기로 매달릴 때가 있다
  • 코드를 쓰면서 생각한다
  • 문제에서 제시한 조건을 주의하지 않아서 edge case를 놓친다

개선 방법

현업 개발자 멘토님께 공부법에 대해서 질문을 드렸. 풀이법이 떠오르지 않았는데 코드부터 쓰는 것이 정말 틀린 방법이라고 한다. 풀이법에 확신이 들 때까지 생각하고 손으로 메모하고, 시간이 된다면 pseudo code까지도 써보아야 하고, 그리고 문제 풀이의 마지막의 마지막에 - 확신이 생겼을 때만 - 코드를 써내려가는 것이 제일 제일 효율적인 방법이라고 한다. 만약 확신이 없다면 그 문제를 풀 가능성이 거의 없으므로 그냥 다음 문제를 풀어야 한다.

반성과 앞으로 공부 계획

돌아보면, 지금까지 항상 문제를 이해하고, 풀이 방향을 알겠다고 느끼면 일단은 코드부터 쓰기 시작했다. 그 방향이 맞는지, edge case를 넣어서 검토해보지 않고 일단 도전해본 적도 있었다. 그런데 그렇게 하면 해당 문제를 풀었더라도 결국 시간 부족으로 다음 문제를 못 풀거나 아예 다른 방향임을 나중에 깨달아서 그 문제를 포기하게 되는 경우가 많았다. 앞으로는 아래와 같이 공부해야겠다!

  • 한 문제당 풀이 시간을 정한다.
  • 풀이 시간의 80% 정도는 생각하고 메모한다.
  • 정해둔 풀이 시간까지 아무 풀이법이 떠오르지 않거나 확신이 없다면 다음 문제로 넘어간다.
  • 풀이 방향이 떠올랐다면, 이때 아이디어를 적고 edge case를 활용해 검토하되 코드부터 적지 않는다.
profile
성실함과 끊임없는 학습을 통해 성장하는 개발자 지망생입니다. 새로운 도전과 배움을 즐기며 더 나은 코드를 꿈꿉니다.

0개의 댓글