코딩테스트 준비(with. Grind 75)
개발 관련해서 지속적으로 코딩테스트 관련하여 공부 방법을 고민중에 한 멘토 분께서 Grind 75를 통해서 준비하는 방법이 있다고 추천해 주셨고 그에따라허 Grind 75를 활용해서 알고리즘 공부를 진행해보며 내가 했던 방식과 다른 사람들이 했던 방식에 대한 내용을 같이 공유하려고 한다.
우선 검색창에 Grind 75를 검색해서 가장 상단에 위치한 사이트를 들어가게되면 아래와 같은 페이지를 만나게 된다.
주차별 공부시간을 설정하면 각 주차별 진행할 내용을 선정해주고 해당 내용을 직접 풀어보면서 공부하는 내용이다.
첫번째 문제를 클릭해서 들어가보면 아래와 같은 화면이 나오게 된다.
위 화면의 왼쪽 부분에서는 문제의 내용을 의미하고 오른쪽은 문제를 풀기 위한 코드를 작성하는 코드 에디터가 나오게 된다.
코드를 작성하고 오른쪽 아래의 Run(달리다)버튼을 통해 실행이 가능하고 모두 풀었다면 제출하다를 클릭하여 최종 제출하면된다.
근데 이러면 다른 programus나 백준과 차이점이 없지 않나? 라고 생각이 들게된다.
Grind에 출제되는 문제는 전체로 치면 169개가 있고, 이 문제들은 실리콘벨리의 개발자들이 코딩테스트에 적합하다고 생각되는 문제들로 구성된다. 따라서 해외 IT기업에서도 출제가 되는 문제라고 생각할 수 있다.
따라서 Grind를 통해 코딩테스트를 준비한다는 것은 글로벌트렌드에 적합한 내용으로 코딩테스트를 준비할 수 있다고 생각하고 각 항목의 중요도에 따라서 준비도 가능하다.(사실 실리콘벨리 문제라고해서 별게 있는것은 아니지만 국내에도 해당 내용을 바탕으로 활용된 문제가 출제가 된다고 한다.)
위의 문제 풀이 화면에서 문제를 풀때 나는 아래와 같은 방법을 통해서 코딩테스트를 준비하려고 한다.
- 문제를 푼다. 권장되는 풀이시간안에 (약 40분) 문제를 풀어본다.
- 시간안에 문제가 안풀리더라도 문제가 풀릴것 같다면 약 1시간 정도까지는 할애하여 해당 문제를 풀어본다.
- 내풀이가 시간복잡도와 공간복잡도를 달성했는지 확인하니다.
- 동일한 성능인데 다른 방법이 있는지 확인한다.
- 같은 접근법이라도 좀 더 깔끔한 code의 솔루션이 있는지 확인한다.
- 기록한다.
- 문제의 링크
- 첫 번째 시도 때 푸는데 걸린 시간
- 처음 시도 때 최적의 접근법으로 해결하였는가
- 위의 항목에 대해서 나눠서 기록한다.
- 스스로 풀지 못한 문제를 스스로 풀 수 있을때 까지 1~2주 간격으로 반복한다.