[코테로그] 코딩테스트 쉽게 시작하는 방법 소개

일리의 기록·2022년 11월 15일
1

코테로그

목록 보기
1/1
post-thumbnail

Intro.

코딩테스트 공부를 시작한 지 1주 ~ 2주 정도 지난 것 같다.

퇴사하고 이직 준비를 막 시작했을때는 개발자로 3년 넘게 일했음에도 불구하고 익숙하지 않은 알고리즘을 다시 공부해야한다는 게 너무너무x100 싫었다

정신차리고 코딩테스트 공부를 해야하는 이유를 생각해보자

  • 요즘 웬만한 개발 회사는 본 면접을 치루려면 코딩테스트부터 통과 해야함.
  • 알고리즘을 알면 논리적인 사고를 하게 되어 효율적인 로직 작성에도 무조건 도움됨.
  • 개발하다가 문제를 발견하면 어떤 의문을 가져야하고, 어떻게 접근해야할지 파악하는데 도움이 됨.
아직 공부를 시작한 지 얼마되지 않아 생각이 또 달라질수 있겠지만 정말 너무너무 공부하기 싫었던 본인으로써 시도해 본 방법 중 가장 쉽게 코딩테스트를 시작할 수 있었던 방법을 소개해보려고 한다.

📚 책으로 공부하기

프로그래머스 문제를 풀어보다가 한문제를 푸는데 4시간이 걸리고 깜짝 놀라서 책을 찾아보았다.
다른 언어로 봐도 상관없지만 코딩테스트를 볼 언어가 자바라서 선택하게 된 책은 다음과 같다.

Do it 자료구조와 함께 배우는 알고리즘 입문 - 자바 편

책을 보면 학습 계획표 30일 완성 코스가 나와있는데 그대로 따라가 보았다. 책 제일 처음에는 코딩테스트를 풀기 위해 알아야하는 시간 복잡도와 디버깅에 대해 설명이 나와있고 그 다음부터는 자료구조, 정렬, 탐색.. 의 순서로 대표 문제와 설명이 나와있다.

느낀점.

책으로 공부하면서 느낀 점은 차리리 문제를 많이 풀어보면서 감을 먼저 잡고, 어떤 과정으로 풀어야 할지 고민이 될 때 책을 보는 게 베스트일 것 같다는 점이었다. 문제를 보았을 때 어떤 사고를 거쳐서 접근하고, 풀어야 하는지 잘 나와 있었지만 (왕초보 기준) 처음부터 책으로 문제를 접하기엔 설명이 어렵기도 하고 30일 코스대로 꾸준히 따라가기가 힘들었다.

💻 코딩테스트 플랫폼 이용하기

책으로 코딩테스트 공부하기를 중도 하차하고 문제 사이트들을 찾아보았다.

1. 백준

유튜브 영상을 보고 설명해주시는 내용 그대로 따라서 하기 시작했다.

내용을 요약하면 아래와 같은데 지금은 1번 단계별 문제 풀이를 해보고 있다.

알고리즘 공부 순서
1. 백준 단계 → 12단계까지 백준 단계별 문제 풀기
2. 이후 백준님 강의 코스 (알고리즘 기초 ~ 알고리즘 중급 1까지) 코스 내용에서 연관된 문제 풀어보기
3. 문제 풀이 중 막히면 구글에 번호 + 언어 검색해서 코드만 보고 이해해보고 다시 문제 풀어서 제출해보기
4. 알고리즘은 문제를 봐서 이해가 안되면 바로 구글에 코드 검색해서 이해하고 이해 안되면 강의 or 유튜브로 이해
5. 이해한 내용을 기반으로 문제의 패턴을 학습하고 다른 문제는 어떤 식으로 풀지 생각
6. 연관된 문제 or 다른 예시 코드를 풀어본 후에 패턴을 외워 그 문제가 익숙해지면 된다.

느낀점.

꾸역꾸역 하루에 1문제 ~ 5문제씩 풀다보면 점점 github 잔디 심는 맛도 즐기며 재밌게 문제를 풀 수 있다.
먼저 30~40분 내로 문제를 풀고, 다른 "맞힌 사람"들의 답안을 참고해서 좀 더 시간과 메모리에 효율적인 로직을 살펴본다. 생각지 못했던 접근 방식은 그 방식대로 풀어보고, 이해하고 넘어가느라 한문제를 푸는데 최소 1시간 씩 걸리고 있다.

Tip.

그래서 1 ~ 6단계 정도는 다 풀지 않고 단계별로 3 ~ 5문제 정도만 선정해서 확실히 알고나면 다음 단계로 넘어가는 방식으로 풀면 좋을 것 같다.

2. 프로그래머스

깔끔하고 직관적인 UI에 따라 난이도 순서대로 문제를 풀어보았다.

느낀점.

실제 코딩테스트 문제들을 연습 해보기 좋은 사이트인 것 같다. 테스트 케이스를 추가하거나 코드를 실행해 볼 수 있고 코딩테스트 기출 문제들을 풀어볼 수도 있다. 다만, 문제들이 대부분 문제 자체를 이해하는데도 시간이 걸리고 Lv.0, Lv.1 마저 까다로운 편에 속한다.

Tip.

그래도 실제 시험 보듯이 푸는 것에 익숙해지기 위해 하루에 1문제씩은 풀어보고 문제 풀이 방법을 구글에 검색해서 문제의 알고리즘이나 접근 방식이 올바른지 확인해보면 좋다. 그리고 가끔 올라오는 채용 프로그램에 참여하기를 눌러서 정해진 시간 내에 문제들을 풀어보는 것도 늘어지는 마음 다잡기에 도움이 된다.

3. LeetCode

LeetCode 사이트 Problems의 LeetCode 75부터 풀어보고 있다. 각 테마별로 자신의 난이도에 맞게 코스를 선택하면 된다.

느낀점.

테마별, 자료구조/알고리즘별 개념을 확실히 잡고 문제들을 풀어보기 가장 좋은 사이트라고 생각한다.
문제를 풀면 Similar Questions에 비슷한 문제들을 바로 풀어볼 수 있고, Related Topics에 나오는 자료구조와 알고리즘을 클릭해서 관련된 문제들을 볼 수 있다. 이처럼 "내가 뭘 풀고 있는 거지?" 라는 질문에 명확한 대답이 있어서 기본 개념 잡기에 제일 좋았다.

프로그래머스처럼 테스트 케이스를 추가하거나 코드를 실행해 볼 수 있고 유료지만 구글, Facebook, Micorosoft 등 기업들의 Interview 문제들을 풀어볼 수 있다.

Tip.

문제를 풀고 Related Topics에 나오는 개념을 구글이나 유튜브에 검색해 개념적으로 한 번 정리한 다음 연관된 문제들을 연속적으로 풀어보면 좋다.

Summary.

문제를 계속 풀다보니 부담스럽던 코딩테스트에 어떻게 접근해야할지 감을 잡을 수 있었다.

물론 더 나은 방식이 있을 수도 있지만 이 글을 통해 코딩테스트 공부가 너무너무 하기 싫은 누군가에게 한발짝 내디뎌 볼 수 있는 계기가 될 수 있었으면 좋겠다.

profile
시도하지 않으면 아무것도 할 수 없다. 실패를 두려워 하지 말자. 내 작은 행동과 실패도 누군가에겐 도움이 될 수 있다.

0개의 댓글