본문 바로가기

코딩테스트/알고리즘잡스

알고리즘잡스 몰입캠프 1달 수강 후기

졸업 전 마지막 방학을 맞아, 하반기 코딩테스트를 제대로 준비하고 싶었다.

나는 내 자신을 잘 알았고 혼자서 열심히 하는 스타일은 아니어서 빡세게 훈련시켜줄 곳이 필요했다.

 

일단 간단하게 나의 배경을 소개하면 문과생이 컴퓨터공학과를 복전하여 필수적인 전공 과목들은 다 들은 정도이다.

작년에 인턴 지원 하면서 삼성전자랑 현대자동차 코딩테스트를 봤었는데, 솔직히 평소에 코딩을 열심히 한 것도 아니고 알고리즘 문제를 많이 풀어본 것도 아니어서 한 문제도 제대로 풀지 못했다.

그 때 이후로 '내가 과연 할 수 있을까' 이런 생각이 들어 반 년 정도 알고리즘 공부를 전혀 안하고 있었다.

 

하지만 컴공에 발을 들인 이상 코딩테스트를 통과하지 못하면 답이 없기 때문에 어떤 방법을 쓰더라도 실력을 쌓아야겠다는 판단이 들었고, 자신감을 찾기 위해서 코드업(https://codeup.kr/) 기초 100제를 풀며 C언어를 복습했다. 이제 좀  어려운 문제들을 풀어봐야지라는 생각이 들때쯤 알고리즘잡스에서 몰입캠프를 모집한다는 광고를 접했다. 작년에 급하게 한 달 정도 다녀보았고 학습 시스템과 자료가 괜찮았었지라는 인상이 남아있어서 설명회에 참석했다.

대표님이 직접 강연하셨고 본인도 어릴때 알고리즘 경시대회, 올림피아드 준비하면서 자신감이 많이 떨어져있었는데

고2땐가 한달동안 하루에 20시간 가량 코딩하면서 이전에 7년 동안 공부했을때 보다 실력이 월등히 늘었다고 하셨다.

 

우리도 2달 안에 원하는 결과를 얻기 위해서는 하루에 8시간 이상 공부해야한다고 하시면서 커리큘럼을 보여해주셨는데 내가 보기에는 과제의 양이 많고 피드백 받는 시간과 강의도 적절히 들어있고 무엇보다 나의 실력을 정량적으로 판단할 수 있는 수치들이 나오는 시스템이 마음에 들었다. 나만 열심히 하면 현재의 어설픈 실력이 많이 향상될 것으로 보여서 높은 가격에도 불구하고 등록하겠다고 했다. 솔직히 말해서 누구나 선뜻 지불할 수 있는 금액은 아니지만 국비과정 같은 것도 몇 번 들어보니 조금 아쉬움이 있었고 제대로 하는 코딩 부트캠프들은 기본적으로 몇 백만원 하기 때문에 내 입장에서는 충분히 지불할 만한 가치가 있다고 생각했다. 집에 돌아가서 바로 레벨테스트를 보았고 다시 한번 내 위치를 확인한 뒤 월요일부터 몰입캠프에 들어갔다.

 

 

본격적인 후기는 여기부터

(학원 자료들은 제가 공개를 해도 되는지 모르겠어서 일단 글로만 설명을 드립니다.)

 

7월 1일부터 시작하여 어느새 4주의 시간이 지나갔다. 자세한 내용은 아래 서술하겠지만 결론부터 말하자면,

실력이 많이 늘었고 굉장히 멀게만 느껴졌던 목표에 조금씩 다가가고 있다는 느낌이 든다.

 

1주차, 2주차는 정말 어떻게 지나갔는지 모르겠다. 분명히 반복문, 조건문, 배열 등만 사용하면 풀 수 있는 문제들이었는데 생각할게 많았고 시간이 오래 걸렸다. 예전에는 이런 뭔가 복잡해 보이는 문제들을 못푸는 것이 배경지식이 부족해서라고 생각했었는데 알고보니 구현 능력이 부족해서였다. 이것을 인정한 뒤로는 시뮬레이션 문제들에 막연한 두려움이 조금 사라졌다. 학원에서 시킨대로, 문제를 보면 키보드로 코딩부터 시작하는 것이 아니라 손으로 설계를 충분히 마친 뒤, 더 좋은 방법이 없을까 고민해보면 시간은 조금 오래걸려도 100점을 받으며 문제를 완벽하게 풀어낼 수가 있었다. 문제 마다 제한 시간이 있었고 처음 풀때는 20분 제한 문제도 1시간 이상이 걸리는 경우가 허다했지만 여러번 반복하니 시간 내에 풀면서 코드도 점점 깔끔해졌다. 내가 혼자 공부를 했을때 가장 답답했던 점이 코드 작성 중 사소한 부분에서 생긴 의문점이나 더 효율적인 방법이 없나 물어볼 사람이 없었던 것인데, 학원에서 코치분들이 붙어서 그런 부분들을 명확하게 해주시니 내가 쓸데없는 걱정을 하지 않아도 되서 좋았다. 그리고 매일매일 학습 시간을 체크하고 수강생끼리 진도를 공유했는데 다들 정말 열심히 하셔서 자극이 많이 되었다.

 

일요일 마다 특강이 있었는데, 난이도 있는 문제로 진단 테스트를 하였고 첫째주에는 못 풀었던 구현 문제를 셋째주에는 풀 수 있게 되어서 뿌듯했다. 시뮬레이션 문제 훈련을 많이 하고 재귀 파트에 돌입했는데, 굉장히 힘든 시간이었지만 문제를 풀고 났을때의 성취감은 더욱 컸다. 재귀와 관련해서는 학교에서도 이미 다룬 내용이며, 중요하다는 정도는 파악하고 있었지만 문제 푸는 것이 굉장히 어려웠다. 하지만 대표님 말씀대로 '순열 구하기 ' 문제를 제대로 이해하고 나니 어떤 틀이 잡혔고 재귀 문제에서도 오히려 구현 부분이 어려웠지 재귀 함수 부분은 작성이 수월했다. 진단 테스트에서도 재귀 문제를 풀어내서 내가 그래도 괜찮게 이해하고 있구나라는 생각이 들었다. 그리고 매주 제출 수와 정답률 등을 파악하는 통계자료가 있는데, 한 번에 100점 맞는 코드를 작성하기 위해 노력한 결과, 준수한 정답률이 나와서 올바른 방향으로 가고 있구나라는 생각이 들어 더욱 집중할 수 있었다.

 

그렇게 LV10까지 진도가 나갔고 3주 차에는 자료구조에 들어갔다. 전공 수업 때 한번씩 배운 기억이 나서 강의를 듣고 직접 구현할 때도 많이 어렵지는 않았다. 이 때는 문제가 많지 않아서 진도를 빨리 나갈 수 있었다. 기본 자료구조들,    고급 정렬 등을 원활하게 구현하게 된 후에 STL을 써야할 단계에 들어왔다. 현재가 4주차인데 BFS, DFS 문제를 풀고있고 지금까지 풀어온 문제들 보다 훨씬 어렵게 느껴진다. 시험장에서 봤던것 같은 느낌이 들고 이 정도를 쉽게 풀어낼 수 있어야 실전에서도 헤매지 않을 것 같다.

 

지금까지 절반 정도 달려왔는데 LV19를 진행 중이긴 하지만 아직까지 갈 길이 멀다. 첫 주에 비하면 공부하는 시간 자체가 줄어들기도 했고 자만하는 것 같기도 하다. 하지만 학원에서 계속 관리를 해주시고 매주 나의 위치를 확인시켜주시니 열심히 안할 수가 없다. 내가 과연 이번 방학에 혼자 공부를 했다면 지금처럼 실력이 향상될 수 있었을까라는 생각이 절로 든다. 지금까지는 몰입캠프에 굉장히 만족하고 있고 단기간에 효율적인 방법을 원하는 사람들에게 추천하고 싶다. 하지만 어느정도 배경지식은 있어야 속도가 붙을 수 있고 효과적일 것 같다. 나 같은 경우에는 컴퓨터 공학을 배우면서도 매번 어려운 과제들에 막혀 코딩에 자신이 없는 상태였는데 이번에 구현 파트를 많이 반복하면서 매우 만족스러웠고 더욱 흥미가 생겼다. 조금 더 일찍 누군가가 이런 방식으로 붙어서 가르쳐주었으면 어땠을까하는 아쉬움이 들지만 앞으로는 더 열심히 할 생각이다.