지극히 주관적인 생각이며 코딩 테스트 유형이 읽는 시점에 많이 달라졌을 수 있다.
머릿말
- 
    생각보다 많은 분들이 코테 준비를 어떻게 했는지 물어봐주셔서 
- 
    이 참에 글로 정리를 하기로 마음먹었다. 
- 
    또한 필자의 글이 틀릴 수 있고 
- 
    문제 유형이 변하면서 공부 방법이 틀릴 수 있다. 
- 
    꼭 감안해서 봐야한다 !!! 
- 
    사실 이 글을 쓰기 전 지인들에게만 공유했던 BOJ 그룹에 
- 
    내가 코딩 테스트를 어떻게 준비했는지 적어놨었는데 
- 
    그 글을 보기 위해선 가입을 신청해야하는 번거로움이 있어서 
- 
    Public하게 이 블로그에 글을 공유하기로 하였다. 
// 200420 추가
BOJ 그룹에 가입 신청을 해주시는 분들이 계시는데
제가 BOJ를 거의 안들어가고 관리도 되지 않는 상황입니다 ㅠㅠ 
그럼에도 어떤 문제집이 있는지 궁금하시다면
신청하시고 메일 혹은 오픈방으로 연락주시면 
승인처리 해드리겠습니다 ! 
감사합니다.
코딩 테스트 준비
- 
    글을 시작하기 앞서 
- 
    필자의 주관적인 생각이며 절대적인 답이 아니다. 
- 
    단지 나는 이렇게 준비를 했음을 공유하는 것이다. 
- 
    또한 간과하지 말아야할 부분이 
- 
    내가 말하는 준비 방법의 핵심은 선택과 집중이다. 
- 
    가장 많이 출제되는 유형에 시간을 투자하는 것이다. 
- 
    그렇기 때문에 5문제가 나오면 5문제를 다 맞추는 준비 방법이 아닌 
- 
    적어도 1~2개는 맞춰서 코딩 테스트 관문은 통과할 수 있게끔 하는 방법이다. 
완전 탐색
- 
    모든 코테에서 가장 많은 유형을 차지하는건 완전 탐색이다. 
- 
    시간이 없는 취준생이라면 완전 탐색만 푸는걸 추천한다. 
- 
    진짜로 대부분의 기업 코테는 다 뚫을 수 있다. 
Why?
- 
    ACM과 같은 알고리즘 대회에서 성적순으로 짜르는 시스템이 아니고 
- 
    전체적인 평균을 넘는 지원자가 통과하는 방식이라고 생각한다. 
- 
    즉 완전 탐색만 문제만 제대로 풀면 평균은 할 수 있기 때문에 
- 
    취업을 위한 관문을 통과할 수 있다고 생각한다. 
- 
    취준생에게 시간은 금이다. 
- 
    또한 기업 코딩 테스트는 유형을 아느냐 싸움이라고 생각한다. 
- 
    문제풀이 시 20~30분 고민했는데 
- 
    알고리즘이 안떠오르면 답을 봐라. 
- 
    내가 했던 방식이였다. 
- 
    답 코드를 보고 이해한다. 
- 
    혼자서 스스로 다시 짜본다. 
- 
    체크해놓고 나중에 반드시 다시 풀어야한다. 
- 
    답 코드를 볼 때는 코드를 거의 외우다시피 봐도 된다. 
- 
    그리고 중요한건 혼자서 스스로 다시 짜보는 것이고 
- 
    더 중요한건 나중에 다시 풀어보는 것이다. 
- 
    신기하게도 한번 막혔던 부분은 다음에 풀어도 똑같이 막힌다. 
- 
    다시 풀 때 정답 코드가 생각난다고 안푸는 사람도 있는데 
- 
    필자는 그래도 다시 풀었다. 
- 
    머릿속에 떠오르는 것과 직접 타이핑해보는 것은 정말 다르다. 
그런데…
- 
    완전 탐색이 중요한 건 알겠는데 
- 
    나는 기초가 없으니까 BOJ 단계별 알고리즘으로 기초를 쌓아야겠다 ! 라고 생각하는 분이 분명히 있을꺼다. 
- 
    지극히 주관적인 생각이지만 
- 
    알고리즘 기초가 없다고 
- 
    BOJ 단계별 알고리즘으로 기초를 쌓으려고 한다면 
- 
    정말로 매우 아주 반대하고싶다. 
- 
    알고리즘 실력을 길러서 코테를 뚫는다 라고 생각하지말고 
- 
    코테를 뚫기위한 문제를 풀고 스킬을 쌓아서 코테를 뚫자 라고 생각하자. 
- 
    그래서 내가 추천하는 방법은 
- 
    프로그래머스로 기초적인 사고력 + 구현 능력을 쌓고 
- 
    바로 완전 탐색 문제를 푸는 것이다. 
- 
    여기서 완전 탐색 문제가 어려워서 못풀겠다고 
- 
    포기해야겠다 생각이 들면 그렇게 해도 된다. 
- 
    하지만 포기함은 동시에 취업을 포기하겠다는 뜻과 같고 
- 
    취업 시기도 그만큼 늦어질 것이다. 
- 
    정리하자면 
- 
    완전 탐색 풀 수 있는 능력 = 기업 코테 뚫을 수 있는 수준이라고 생각하면 된다. 
- 
    그렇기 때문에 완전 탐색 문제를 풀 수 있는 능력이 없다면 
- 
    코테를 뚫을 수 있는 수준이 아니라고 생각한다. 
- 
    그러면 2가지 방법이 있다. 
- 
    끈질기게 공부해서 수준을 올리냐 
- 
    코테보지 않는 기업을 지원하느냐 
So What?
- 
    2번을 선택하였다면 조용히 뒤로가기를 하셔도 된다. 
- 
    그렇지 않고 나는 끈질기게 공부해서 수준을 올리고 싶다면 이어서 글을 읽어보도록 하자. 
- 
    기초적인 코딩을 위해서 프로그래머스를 활용하자 
- 
    프로그래머스 사이트 -> 코딩 테스트 연습 -> 모든 문제 -> 레벨 1,2 에 있는 문제를 가능하면 다 풀자 ! 
- 
    풀다 모르겠으면 필자 블로그를 참고하자 
- 
    https://goodgid.github.io/category/#Algorithm 
- 
    프로그래머스 문제를 다 풀었다면 
- 
    이제 본격적으로 완전 탐색을 조지자 !!! 
- 
    ( 삼성을 노린다면 ) SWEA 사이트 문제를 조지자. 
- 
    BFS 혹은 DFS 관련 문제집을 조지자. 
- 
    BOJ에 있는 삼성 기출 문제집을 조지자. 
- 
    자유롭게 다른 유형을 준비한다. 
- 
    프로그래머스 + 완전탐색 
- 
    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 
- 
    대표적으로 괄호의 짝이 맞는지 체크하는 문제를 풀어보자. 
구현
- 
    계산기 구현해보자. 
- 
    그리고 트리 순회를 해보자. - 
        전위 순회 Preorder Traversal 
- 
        중위 순회 Inorder Traversal 
- 
        후위 순회 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으로 다 풀 수 있다 !