Gidhub BE Developer

goodGid의 코딩 테스트 준비 방법

2019-09-08
goodGid

지극히 주관적인 생각이며 코딩 테스트 유형이 읽는 시점에 많이 달라졌을 수 있다.

머릿말

  • 생각보다 많은 분들이 코테 준비를 어떻게 했는지 물어봐주셔서

  • 이 참에 글로 정리를 하기로 마음먹었다.


  • 또한 필자의 글이 틀릴 수 있고

  • 문제 유형이 변하면서 공부 방법이 틀릴 수 있다.

  • 꼭 감안해서 봐야한다 !!!


  • 사실 이 글을 쓰기 전 지인들에게만 공유했던 BOJ 그룹

  • 내가 코딩 테스트를 어떻게 준비했는지 적어놨었는데

  • 그 글을 보기 위해선 가입을 신청해야하는 번거로움이 있어서

  • Public하게 이 블로그에 글을 공유하기로 하였다.

// 200420 추가
BOJ 그룹에 가입 신청을 해주시는 분들이 계시는데
제가 BOJ를 거의 안들어가고 관리도 되지 않는 상황입니다 ㅠㅠ 

그럼에도 어떤 문제집이 있는지 궁금하시다면
신청하시고 메일 혹은 오픈방으로 연락주시면 
승인처리 해드리겠습니다 ! 
감사합니다.

코딩 테스트 준비

  • 글을 시작하기 앞서

  • 필자의 주관적인 생각이며 절대적인 답이 아니다.

  • 단지 나는 이렇게 준비를 했음을 공유하는 것이다.

  • 또한 간과하지 말아야할 부분이

  • 내가 말하는 준비 방법의 핵심은 선택과 집중이다.

  • 가장 많이 출제되는 유형에 시간을 투자하는 것이다.

  • 그렇기 때문에 5문제가 나오면 5문제를 다 맞추는 준비 방법이 아닌

  • 적어도 1~2개는 맞춰서 코딩 테스트 관문은 통과할 수 있게끔 하는 방법이다.

완전 탐색

  • 모든 코테에서 가장 많은 유형을 차지하는건 완전 탐색이다.

  • 시간이 없는 취준생이라면 완전 탐색만 푸는걸 추천한다.

  • 진짜로 대부분의 기업 코테는 다 뚫을 수 있다.

Why?

  • ACM과 같은 알고리즘 대회에서 성적순으로 짜르는 시스템이 아니고

  • 전체적인 평균을 넘는 지원자가 통과하는 방식이라고 생각한다.

  • 즉 완전 탐색만 문제만 제대로 풀면 평균은 할 수 있기 때문에

  • 취업을 위한 관문을 통과할 수 있다고 생각한다.


  • 취준생에게 시간은 금이다.

  • 또한 기업 코딩 테스트는 유형을 아느냐 싸움이라고 생각한다.

  • 문제풀이 시 20~30분 고민했는데

  • 알고리즘이 안떠오르면 답을 봐라.

  • 내가 했던 방식이였다.


  1. 답 코드를 보고 이해한다.

  2. 혼자서 스스로 다시 짜본다.

  3. 체크해놓고 나중에 반드시 다시 풀어야한다.


  • 답 코드를 볼 때는 코드를 거의 외우다시피 봐도 된다.

  • 그리고 중요한건 혼자서 스스로 다시 짜보는 것이고

  • 더 중요한건 나중에 다시 풀어보는 것이다.

  • 신기하게도 한번 막혔던 부분은 다음에 풀어도 똑같이 막힌다.


  • 다시 풀 때 정답 코드가 생각난다고 안푸는 사람도 있는데

  • 필자는 그래도 다시 풀었다.

  • 머릿속에 떠오르는 것과 직접 타이핑해보는 것은 정말 다르다.

그런데…

  • 완전 탐색이 중요한 건 알겠는데

  • 나는 기초가 없으니까 BOJ 단계별 알고리즘으로 기초를 쌓아야겠다 ! 라고 생각하는 분이 분명히 있을꺼다.

  • 지극히 주관적인 생각이지만

  • 알고리즘 기초가 없다고

  • BOJ 단계별 알고리즘으로 기초를 쌓으려고 한다면

  • 정말로 매우 아주 반대하고싶다.


  • 알고리즘 실력을 길러서 코테를 뚫는다 라고 생각하지말고

  • 코테를 뚫기위한 문제를 풀고 스킬을 쌓아서 코테를 뚫자 라고 생각하자.


  • 그래서 내가 추천하는 방법은

  • 프로그래머스로 기초적인 사고력 + 구현 능력을 쌓고

  • 바로 완전 탐색 문제를 푸는 것이다.


  • 여기서 완전 탐색 문제가 어려워서 못풀겠다고

  • 포기해야겠다 생각이 들면 그렇게 해도 된다.

  • 하지만 포기함은 동시에 취업을 포기하겠다는 뜻과 같고

  • 취업 시기도 그만큼 늦어질 것이다.


  • 정리하자면

  • 완전 탐색 풀 수 있는 능력 = 기업 코테 뚫을 수 있는 수준이라고 생각하면 된다.

  • 그렇기 때문에 완전 탐색 문제를 풀 수 있는 능력이 없다면

  • 코테를 뚫을 수 있는 수준이 아니라고 생각한다.

  • 그러면 2가지 방법이 있다.

  1. 끈질기게 공부해서 수준을 올리냐

  2. 코테보지 않는 기업을 지원하느냐

So What?

  • 2번을 선택하였다면 조용히 뒤로가기를 하셔도 된다.

  • 그렇지 않고 나는 끈질기게 공부해서 수준을 올리고 싶다면 이어서 글을 읽어보도록 하자.

  • 기초적인 코딩을 위해서 프로그래머스를 활용하자

  • 프로그래머스 사이트 -> 코딩 테스트 연습 -> 모든 문제 -> 레벨 1,2 에 있는 문제를 가능하면 다 풀자 !

  • 풀다 모르겠으면 필자 블로그를 참고하자

  • https://goodgid.github.io/category/#Algorithm


  • 프로그래머스 문제를 다 풀었다면

  • 이제 본격적으로 완전 탐색을 조지자 !!!


  1. ( 삼성을 노린다면 ) SWEA 사이트 문제를 조지자.

  2. BFS 혹은 DFS 관련 문제집을 조지자.

  3. BOJ에 있는 삼성 기출 문제집을 조지자.

  4. 자유롭게 다른 유형을 준비한다.


  • 프로그래머스 + 완전탐색

  • 2개만 해도 충분하다고 생각한다.

  • 무엇보다 2개하는것도 시간이 부족하다.


삼성 코테를 준비한다.

  • 삼성의 문제는 완전 탐색 + 빡구현 유형이 압도적으로 높다.

  • 그렇기 때문에 2가지 유형을 준비해야한다.

  • 추천 문제 풀이 순서는

  • 2 -> 3 -> 1 이다.

  • 완전 탐색 유형을 익히기 위해서 2번으로 시작을 추천한다.

  • 그리고 삼성 코테 스타일에 맞는 완전 탐색빡구현 능력을 기르기 위해서 1,3번의 문제를 푼다.

  • 그렇게 되면 삼성 코테에 최적화된 상태가 된다.


  • 그런데 왜 3 -> 1 순서일까?

  • (풀어보면 알겠지만) 1,3번의 문제를 제출하는 스타일이 다르다.

  • 이건 문제를 풀면 무슨 말인지 안다.

  • 그런데 여기서 삼성 코테에 최적화된 유형은 1번이다.

  • 그렇기 때문에 1번을 마지막으로 풀면서

  • 삼성 코테에 최적화된 환경에 익숙해지는 것이다.


삼성 코테를 준비하지 않는다.

  • 추천 문제 풀이 순서는

  • 2 -> 4 이다.


  • 2번을 풀면서 완전 탐색에 대한 감을 익힌다.

  • 딱 이수준까지하면 그래도 코테에서 1~2개는 풀 수 있는 수준이 된다.

  • 그리고 다른 유형(=4번)을 준비한다.


  • 여기서 1,3은 제외한 이유는

  • 다른 기업 코테에서 삼성 처럼 긴 지문으로 나오는걸 본적이 없기 때문이다.

  • 물론 시간이 된다면 풀어보는게 매우 좋다.


  • 여기서 또 궁금증이 생길 수 있다.

  • 자유롭게 하면 된다고하는데 어떤걸 해야하지…?

  • 이 유형에 대해서는 지속적으로 업데이트를 할 예정이다.


2포인터(= 슬라이딩 윈도우)

  • 추가 : 200409

  • 요즘 코테를 보면 투 포인터 문제가 자주 나온다.

  • BOJ에서 해당 유형을 반드시 풀어 보길 추천한다.

  • 18 하반기 SK 하이닉스 코테에도 나왔고

  • 20 상반기 LINE 코테에도 나왔다.

  • 그 외에도 종종 출몰한다.

스택

  • 추가 : 200101

  • 대표적으로 괄호의 짝이 맞는지 체크하는 문제를 풀어보자.

구현

  • 계산기 구현해보자.

  • 그리고 트리 순회를 해보자.

    1. 전위 순회 Preorder Traversal

    2. 중위 순회 Inorder Traversal

    3. 후위 순회 Postorder Traversal

완전 탐색이 어려워요

  • 완전 탐색 문제가 어렵게 다가올 수 있다.

  • 그런데 문제 자체가 어렵다기 보다는

  • 그런 문제 유형에 익숙하지 않아서 어려운게 대부분이다.

  • 문제 유형에 익숙해지면 진짜로 생각보다 쉽다.

  • 스스로를 믿고 해보자 !!!


맺음말

  • 혹시 풀다가 모르는 문제가 있다면 필자 블로그를 참고해보자.

  • 필자 블로그가 좋다고 확신은 못하니 다른 블로그를 참고해도 된다.

SWEA 사이트에서 모의 문제 최소 2~3번씩 풀기

  • https://www.swexpertacademy.com/

  • 블로그 : https://goodgid.github.io/tag/#SWEA

BOJ에 있는 삼성 기출 문제집 풀기

  • https://www.acmicpc.net/workbook/view/1152

  • 블로그 : https://goodgid.github.io/tag/#BOJ

  • BOJ 사용시 유용한 크롬 익스텐션 추천 : 백준허브 사용 방법


열심히 준비하여 자기가 가고자하는
기업에 취직하자 !!!

E.T.C

  • 추가로 기업 코딩 테스트 환경은 90% 프로그래머스이다.

  • 프로그래머스의 특징은

  • 웹 에디터이기 때문에 브레이크 포인트를 사용한 디버깅이 불가능하다.

  • 그리고 만약 카카오 코테를 준비한다면 map,set 사용법은 무조걱 익혀놓자 !

  • 참고로 map = set + @ 라고 생각하면 된다.

  • 그렇기 때문에 map을 익히면 set은 안써도 된다.

  • set으로 해야하는 문제들을 map으로 다 풀 수 있다 !


Recommend

Index