ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 주니어 개발자 코딩테스트 준비하기
    ■ Diary 2019. 8. 10. 20:05

     

     

    첫 취업 준비를 시작할 때부터 가장 탈락을 많이 했던건 코딩테스트였다. 

     

    주어진 시간 내에 문제들을 풀어내야하는데, 문제조차 이해하기 어려웠던 문제들이 많아서 번번히 탈락하곤 했다.

    요즘 백준이 알고리즘, 프로그래머스와 같은 알고리즘 풀이 사이트가 있지만, 문제를 줘도 떠먹지 못하는 때가 있었다.

    다른 사람들 풀이를 보면 저 사람은 10줄도 안되는 코드로 짠 하고 작성했는데, 나는 왜 풀지도 못하지? 하면서 자괴감에 빠졌었다.

     

    그래서 코딩테스트 공부법을 여기저기 검색해서 실천해보면서, 나에게 정말 도움이 되었던 몇 가지 방법들을 정리해보았다.

    코딩테스트로 고민하고 있을 누군가에게 조금이나마 도움이 되길 바라며!

     

     

     

     

     

    1. 책을 보자!


    대표적인 코딩테스트 책은 '알고리즘 문제 해결 전략', '코딩 인터뷰 완전분석' 두 권이 있는데, 나는 '코딩 인터뷰 완전분석'이 더 잘맞았다.

     

     

     

    1. 알고리즘 문제 해결 전략

     

    알고리즘 문제 해결 전략

     

    어렸을 때부터 알고리즘 공부를 했던 친구가 추천해준 책인데, 대학교 때 코딩을 시작한 나에게는 너무 어려운 책이었다ㅠㅠ

    일단 내가 주로 사용하는 언어는 Java였는데, 여기에서는 코드가 C++로 이루어져있어서 더 보기가 힘들었다.

    게다가 가격도 정가 5만원이어서, 그당시 대학생이었던 나에게는 전공서적만큼 비싼 책이었다. 비싼 돈주고 산 책이니, 한 장이라도 더보려고 노력했지만... 몇 챕터 보다가 지쳐서 덮어버렸다.

     

    구입 사이트http://www.yes24.com/Product/Goods/8006522?Acode=101

     

    알고리즘 문제 해결 전략 세트

    이 책은 프로그래밍 대회 문제를 풀면서 각종 알고리즘 설계 기법과 자료 구조에 대해 배우고, 나아가 문제 해결 능력까지 키울 수 있도록 구성되어 있다. 각 장에는 독자가 스스로 프로그램을 작성해서 채점받을 수 있는 연습 문제들이 포함되어 있으며, 모든 연습 문제에는 예제 답안과 답안을 설계하는 과정의 세세한 해설이 첨부되어 있다.

    www.yes24.com

     

     

     

     

     

    2. 코딩 인터뷰 완전분석

     

     

    내가 구입한 책은 초록색 책이다. 두 책은 내용이 거의 똑같은데, 다만 초록색 책의 크기가 더 작아서 들고다니기 편할 것 같아서 초록색으로 구매했다. 이 책은 간단한 설명과 연습문제들로 이루어져있고, 뒤쪽에는 연습문제 해설이 실려있다. 그리고 문제에 대한 접근 방법을 알려주고 있어서 많이 도움이 되었다.

     

    이 책은 앞 부분에는 면접 과정에 대한 글이 있고, 뒷 부분에는 면접 문제를 유형별로 소개했다. 앞 부분은 심심할 때 읽어보면 재밌다 :-)

    뒷 부분은 차례대로 문제를 풀었고, 풀기 전에 해당 유형에 대한 기본 개념에 대해 공부했다.

    예를들면 스택의 경우, 기본 개념에 대해 공부를 하고 push(), pop(), peek() 메서드를 직접 구현해보았다. 그리고나서 연습문제를 풀었고, 어떤 유형의 문제를 스택으로 풀어야하는지, 스택으로 어떻게 풀어야하는지에 대해 공부했다.

    그러고나서 다시 leetcode나 프로그래머스에 있는 스택 관련 문제를 풀어보면, 대강 어떻게 접근해야하는지 감이 온다.

     

     

     

     

     

    2. 문제를 직접 풀어보자!


    내가 지원했던 회사들의 코딩테스트는 프로그래머스, codility와 같은 전문 코테 사이트에서 이루어진다.

    그래서 실제 테스트 전에 해당 사이트에서 직접 문제를 풀어보면, 나중에 실전에서 긴장감이 덜해질 수 있다.

    대학생 때는 주로 백준의 알고리즘, 알고스팟 등 다양한 알고리즘 사이트에서 문제를 풀었다면, 취업 준비를 하면서부터는 프로그래머스, leetcode를 이용하기 시작했다.

     

     

     

    1. 프로그래머스 (https://programmers.co.kr/)

    문제가 한국어로 나오고, 몇몇 주요 기업들의 코딩테스트 사이트로 이용되는 '프로그래머스'.

    프로그래머스에서 가장 유용하게 사용했던 건, 코딩테스트에서 자주 출제되는 유형 문제들을 테스트로 풀어볼 수 있다.

    그래서 코딩테스트를 준비하기 전에 아래 페이지에서 분야별로 풀어보고, 취약한 부분은 leetcode에서 준비했다.

     

     

    프로그래밍 강의 | 프로그래머스

    기초부터 차근차근, 직접 코드를 작성해 보세요.

    programmers.co.kr

     

     

     

    2. leetcode

    친구 추천으로 알게된 leetcode는 유형별로 문제를 풀 수 있고, 대부분 문제들에 해설이 나와있어 풀다가 어려울 때 확인해볼 수 있다.

    그리고 내가 작성한 코드의 실행속도, 메모리 사용량을 다른 사람들 코드와 비교해볼 수 있어서 좋았다. 그리고 속도별, 메모리 사용량 별로 다른 사람이 짠 코드를 확인해볼 수도 있어서 좋았다.

    다만, 문제와 해설이 모두 영어로 쓰여져 있어서 구글 번역을 해가면서 공부를 해야할 때도 있다. 하지만, codility에서 코딩테스트를 보는 회사의 코딩테스트를 준비하려면, 영어 문제에 익숙해져야하므로 leetcode를 풀어보는 것도 좋다.

     

    문제가 굉장히 많이 있고, 돈을 내면 더 많은 문제를 풀어볼 수 있는데 짧은 시간 내에 모든 문제를 풀 수 없으므로, 나는 인기있는 문제 100개를 따로 모아둔 곳에 있는 문제들을 주로 풀었다.

     

    https://leetcode.com/problemset/top-100-liked-questions/

     

    Problems - LeetCode

    Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

    leetcode.com

     

     

    처음에는 하루에 1문제 풀기도 엄청 버거웠다. 하지만 문제를 얼마나 많이 푸느냐보다 한 문제를 풀더라도 내가 얼마나 이해했느냐가 더 중요한 것 같다. 그래서 한 번에 통과한 문제라도 다른사람 풀이를 보면서 좀 더 효율적으로 풀 수 있는 방법을 고민했다. 그 방법을 기억해뒀다가 비슷한 문제가 나오면 그 방법을 이용해서 풀어봤다.

     

    leetcode

     

    예를 들면, leetcode에서는 유형별로 알고리즘 문제를 제공한다.

    만약 내가 Tree에 관련된 문제에 취약하다면, Tree에 관련된 문제들을 여러개 풀어볼 수 있다. 맨 처음에는 난이도가 낮은 '주어진 트리에서 최솟값을 가진 노드 구하기' 를 푼다. 그 문제를 정확히 이해하고 넘어갔다면, 그 다음에는 '주어진 트리에서 최댓값을 가진 노드 구하기' 문제를 푼다. 이 문제도 풀었다면, '주어진 트리를 오름차순으로 정렬하기' 문제를 풀어본다. 이런식으로 트리 문제에 대해 여러가지 방식으로 풀어보는 연습을 해보면 좋다.

     

     

    '■ Diary' 카테고리의 다른 글

    Feedly 추천 후기  (0) 2020.04.10
    FECONF 2019 후기  (0) 2019.10.28
    월간 카카오 경력 지원 후기  (20) 2019.08.14
    주니어 개발자 면접 준비하기  (0) 2019.08.11
    주니어 개발자 경력기술서 작성하기  (30) 2019.08.10
Designed by Tistory.