ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 삼성전자 코딩테스트 후기(2019 하반기)
    후기 2019. 11. 17. 01:38

     

     

    2019 상반기 DS 코딩테스트를 보기좋게 탈락하고난 후,

    본격적으로 삼성전자에 입사하기 위해 코딩테스트 준비를 갈고닦았고, 하반기 삼성전자 코딩테스트에서 합격이후 그 과정과, 이를 통해 얻은 결과에 대해 서술하고자한다.

    기간(7월~ 10월)

    우선, 내가 실패를 하면서 얻은 고찰에 대해서 얘기해보자.

    실패의 원인은 무엇인가?

     

    첫번째, 안일함

    전자공학과다 보니, 학교에서 코딩하는 학우도 몇없고, 또 몇 있는 그 안에서 조금 한다고해서 나는 내가 잘한다고생각했다. 그래서 "알고리즘 열심히해봐야지!" 라는 생각보다는 "지금까지 잘해왔는데 그거 봐도 잘보겠지 ㅎㅎ" 라는 생각으로  시험에임했다.

    두번째, 준비부족

    안일함과 나태함은 결국 준비 부족이라는 결과를 낳았다.

    특히, 삼성전자 코딩테스트는 지원자에게 물어보는것이 굉장히 명확하다고 할수있을거같은데,

    1. 구현력

    2. 구현력을 바탕으로 한 알고리즘 설계 능력

    이 두가지를 중점적으로 물어본다.

    그래서 Dynamic Programming 보다는 DFS, BFS, 완전탐색을 이용한 시뮬레이션 문제가 주를이룬다고 할수있겠다.

    물론, 상반기때 나는 이 두가지 능력중 어느 하나도 제대로 갖추고있지 못했고, 그래서 떨어졌다.

     

    합격하기 위해 했던 노력

    나는 우선, BFS, DFS, DP, 브루트포스, Dijkstra, MST등등 알고리즘에 대한 지식이 전무했다.

    학부시절 배웠던 SW과목에서는 사실 운영체제 에 대한 하드웨어적인 지식은 배울수있어도 소프트웨어적 측면에서는 많은것들을 배울수없었다. 

    특히, 알고리즘에대해서는 지식이 정말 전무했고, 자료구조의 목적은 알더라도, 그것의 쓰임새을 알지 못했다.

     

    하기 전에 가장 먼저 계획을 세운것은

    내 자존감을 키우는 일이 우선이였다.

    상반기 코딩테스트에서 박살이나고나서 알고리즘 문제를 전혀 손도못대는 상황까지 와버렸다.

    그래서, 우선 내가 계획한것은 쉬운것부터 차근차근 풀어나가는것이였다.

    주로 백준 온라인 저지 사이트에서 문제를 푸는것을 주로삼았는데, 

    이과정에서도 단계별 풀이를 시작했다. 쉬운문제부터 어려운 문제까지 나가는것을 목표로삼았고,

    쉬운문제에서 틀리더라도 다시풀면 맞출수있는 그런 문제들을 풀면서 자존감을 회복해나갔다.

     

    그리고, BFS, DFS, BackTracking, DP, MST, 다익스트라 등등 알고리즘을 구글링과

    각종 알고리즘 관련 책들을 봐가면서 공부했고, 이를 계속해서 BOJ에서 적용시키는 과정을 반복했다.

    물론, 쉽지않았던 길이다. 특히 이론부분을 배우고 실전에서 바로쓴다는것은 여태까지 배웠던 것들과는 전혀다른 무언가가 있었다. 이과정에서 가장 중요한것은 포기하지 않는것이라고 생각한다.

    특히 나는 BFS, DFS를 초기에 하면서 Queue에 넣었다 빼면서, 이동하는 그래프 과정이 전혀 이해도안되고

    머리에도 그려지지않았고, 시스템콜 스택을 써야하는 DFS상황에서는 CPU스택이 어떤방식으로 작동하는지조차 몰랐다.

    정말 정말 정말 단 한개도 이해하지못했다. 정말 많은 시간을 투자했고, 계속 이해하려하며, 많은 문제들을 접해보았다.

    그리고 제대로 공채를 시작한지 두달째 9월이 되어서야 이과정들이 서서히 눈에들어오고, 머릿속으로 그려지기 시작했다.

    하지만, 늘 그래왔듯 이러한 순간이 가장위기라고 생각한다.

    사람은 자만에 빠지는 동물이다. 당장 이순간에 이해가 간다고해서 시험장에서도 기억이나고 이해가될지 생각해보자.

    당장 생각을 고쳐먹고 이해했으면 반복하고 그것을 숙달해나갔다.

     

    그럼 강의는 보지않았는지?

    나는 내가 다른사람보다 항상 머리가 뛰어난사람이라고 생각해본적이 없다.

    그래서 남들보다 우위에 설려면 더많은 시간과 노력을 투자해야했는데, 이 전제는 사실 내가 이해라도 하고나서 가능한일이다. 그러한 이해를 하기위해서 가장 먼저 생각났던것은 강의였다.

    유료강의를 찾아본결과 백준온라인저지의 인터넷강의와, 유니와이즈 같은 인터넷강의 사이트에서 파는 강의들이있다는것을 알고는 있었지만, 딱히 귀에 들어오거나 잘되는거같지 않다고 생각했고, 우선 취업준비생이다 보니

    돈이 절대적으로 부족했다. 그래서 유튜브 강의들을 많이 찾아다녔고, 특히 나동빈님의 강의에서 많은 도움을 얻을수있었다.

    https://www.youtube.com/channel/UChflhu32f5EUHlY7_SetNWw

    동빈나

    안경잡이개발자 나동빈입니다.

    www.youtube.com

    자세한 링크는 위에 써놓았다.

     

    이렇게 꾸준하게 공부를하고 문제를 풀어나가다 보니, 어느덧 코딩테스트 날이 다가와있었다.

    오후 2시였나... 아무튼 인재개발원 오후 시험으로 잡혔다.

     

    당일날 사실 잠도 제대로 못자고 같이 스터디하던 DS지원 후배가 코딩테스트를 잘못본거같다는 소식을 전했다.

    그래서 잠도 제대로 못자서 피곤하고, 굉장히 날이선 상태로 시험장에 들어가게되었다.

     

    상반기와 크게 다를것없이 시험이 진행되었고, 상반기때는 DS를써서 수원쪽에서 시험을봤지만 이번에는 CE/IM 무선사업부로 지원해서 인재개발원에서 보는듯했다.

    누구나 알듯 삼성문제는 두개로이루어져있고 3시간 이내에 정확하게 풀고, 푼 문제가 빠르게 테스트케이스를 통과하면된다.

     

    보안서약서를 작성했기 때문에, 문제에 대한 명확한 언급은 할수없으니 조언만 하나 써놓자면,

    백준 문제집 삼성관련 페이지에서 관련항목들을 쉽게 접할수있으니 그것을 참고하면좋을듯하다.

    두가지문제를 풀면서 정말 많은 생각들을 했다.

    우선은 내가 제대로 풀고있는게 맞는지 부터.. 아 이거 제출했는데 틀리면 어떻게하지... 이같은 고민들 말이다.

     

    정말 코딩테스트 이후 계속해서 혼자 뇌피셜로 문제와 풀이를 복기하면서

    아 그때 이거안한것같은데... 틀린거같다... 등등 많은 고민들을 해나갔다.

    (나는 개인적으로 이 일 이후로 면접도 그렇고 그냥 복기를 안하기로 했다. 계속 기억도 잘나지않는것으로 복기하고 상처받는 나자신이 감당이안됬다. )

    결국 발표날이 되었고, 결과는 다음과같다.

     

     

     

     

     

    댓글

Designed by Tistory.