들어가며
지난 겨울에 좋은 기회로 ICPC Sinchon 알고리즘 캠프에 참가하게 되었다.
우선 나는 지금까지 알고리즘 공부를 본격적으로 해본 적은 없고, 스터디를 해본 적은 있다. 21년 1학기에 알고리즘 문제가 정리되어있는 깃허브를 참고하여 브론즈 문제를 일주일에 정해진 개수만큼 풀어와서 본인의 풀이법을 공유하고, 로직은 맞는 것 같은데 답이 제대로 안 나오는 경우 같이 디버깅을 해주는 식으로 진행했다. 동아리에서 모인 사람이라 본격적으로 프로젝트 코딩을 시작하는 기간이 됐을 때 자연스럽게 흐지부지되었다. 이때의 문제 풀이는 개념을 전혀 모른 채 일단 문제부터 풀어보는 식이었다. 문제가 제대로 풀릴 리가 없었고, 구글링해서 코드를 참고하며 이해하는 식으로 할 수밖에 없어 실력이 늘지 않았다.
그렇게 21년 2학기에 새로운 스터디에 들어갔다. 7월 말부터 시작해서 일주일에 3~5문제씩 풀다가, 개념도 모른 채로 무지성으로 문제를 푸는 방식에서 문제를 느껴 다같이 책으로 개념과 함께 공부하자는 얘기가 나왔다.
계속 C언어로 문제를 풀었는데, 코딩테스트는 대부분 C++ 아니면 파이썬으로 한다고 하길래 다같이 바꿔보자고 얘기했다. 아직 C++을 배운 상태도 아니었고, 내 목표는 PS 대회보다는 코딩테스트 통과 정도였기에 파이썬 버스로 갈아탔다. 그렇게 '이것이 취업을 위한 코딩테스트다' 책을 사서 일주일에 한 챕터씩 공부했고, 책의 연습문제의 해답을 보지 않은 상태로 각자 풀어서 풀이를 공유하고 디버깅을 도와주는 방식으로 스터디를 진행했다. 스터디 그룹을 만들어 중간보고서와 최종 발표 등 각종 서류 작업을 하면 우수 그룹을 뽑아 인당 3만원씩 주는 프로그램에 참여했어서 돈도 받았다. 이 스터디도 종강과 함께 자연스레 아무도 하자고 말을 꺼내지 않는 상태가 되었다. 위와 마찬가지로 프로젝트 기간이 되어서 프로젝트만 해도 충분히 정신이 없었기 때문일 것 같다.
ICPC Sinchon
은 숙명여자대학교, 서강대학교, 연세대학교, 이화여자대학교, 홍익대학교의 동아리, 학회가 모여서 만들어졌다. 그리고 알고스는 작년에 들어가고 싶었지만 컴과 복전생도 받아주는데 학회 특성 상 IT공학부는 단과대가 달라서 지원 자격부터 잘렸다... 알고스에 들어갈 수 있었다면 이 알고리즘 캠프를 작년에 했지 않을까 싶다. 내 성격에 이러한 프로그램 할 기회가 생기면 바로 지원부터 하고 보기 때문
GDSC 리드 님이 슬랙에 ICPC Sinchon에서 알고리즘 캠프를 개최하는데 참여하고 싶은 사람은 연락 달라고 올리셔서 추천인의 존재 덕분에 알고리즘 캠프에 참가하게 되었다. 이코테 책으로 공부했으니까 중급이랑 초급을 병행해도 되지 않을까? 싶어서 보니까 백준 티어 플래티넘 문제도 나온다길래 깔끔하게 포기하고 초급 반으로 들어갔다.
참가 비용은 환급 없는 3만원과 환급형(스터디 전 회차 출석 + 모의고사(Camp Contest) 참여 시 전액 환급) 6만원이 있었는데 호기롭게 환급형으로 선택하고 6만원을 냈다! 수강 정정이랑 수강 포기도 있어서 정말 계절 듣는 느낌이었다.
그리고 이것은 이번 초급 커리큘럼
알고리즘 캠프
의 본격적인 시작과 후회의 굴레...
매주 화, 금에 실시간 강의가 있고, 일주일간 해당 주제의 필수 문제 5문제를 풀어오는 것이 출석 조건이다.
당시의 나는 계절학기를 수강하면서 동아리 3개를 하고 있었다. 프로그래밍 동아리 중 하나인 솔룩스에서는 1~2월 안에 앱 개발을 완료해야했고 나머지 하나인 GDSC에서는 해커톤도 했고 프로젝트 때문에 계속 회의하고 생산성 있는 결과를 내놨어야 하는 시기였다. 이번 방학 목표가 널널한 방학이라 다른 동아리나 활동을 안 늘리려고 노력했으나 내가 한가한 상황을 내버려둘 리가 없음. 당연함. 항상 그럼. 괜히 부족한 것 같기도 하고 뭔가 알고리즘 공부도 해보고 싶어서 알고리즘 캠프에 참여했다. 내가 예상치 못한 변수는 출석을 위해 풀어야 하는 필수 문제의 난이도였다.
캠프에 참여했을 때 내 백준 티어는 브론즈 2였나.. 3이었나... 기억은 안 나지만 주로 브론즈 문제를 풀고 기껏해야 실버 문제를 풀던 나는 출석 인정 문제에 골드 문제가 많아서 이마 팍팍 쳐가면서 문제를 풀었다. 처음 접하는 개념과 어려운 문제의 환상의 콜라보! 전부 다 골드 문제인 날은 좀 많이 때려치고 싶었고... 일 벌인 내가 원망스럽고... 인생이 쓰고... 어쩌구...
처음에는 강의도 제 시간에 듣고 강의 들은 내용 정리도 하고 이코테 책도 복습해가면서 공부했는데 필수 문제가 어려워서 갈수록 정리는 무슨 문제 푸는 데 급급했다. 심지어 이때 앱 개발도 처음이라 웹만 하던 나는 낯선 코틀린 붙잡고 머리 싸매다가 지치면 출석 문제를 푸는데 안 풀리니까 또 지치고.. 그러다가 6만원 환급 받을 생각하면 다시 힘이 나서 어떻게든 해야 해!! 하면서 열심히 풀었다. 6만원이 적은 돈은 아니니까 의지 다지는 데 아주 좋았다. 이 글을 보는 사람이 참가를 고민 중인 사람이라면 무조건 환급형 6만원을 추천..
연습 문제와 필수 문제 목록은 백준 그룹에서 볼 수 있는데, 매 주제마다 문제 풀이를 시도하는 사람이 10명 이상 계속 줄어드는 걸 보면서 그래도 나는 끝까지 남아야겠다는 생각을 했던 것 같다. 124명(올솔 84명)에서 시작해서 마지막에는 39명(올솔 35명)이 남았다.
어찌저찌 모든 강의의 출석 문제를 풀었다!
인스타그램에 환급 자랑도 했지롱
이번 알고리즘 캠프 경험은 전반적으로 나를 극복하는 경험이었던 것 같다. 불가능할 것 같았던 환급도 성공했고, 이제는 그래도 알고리즘을 알긴 안다고 말할 수 있는 정도가 되었다고 생각한다. 이번 학기에 이제 학교에서 알고리즘 수업을 듣는데 이미 여기에서 다 한 내용이라 강의계획서 보고 저거밖에 안 해?라는 생각이 든 게 성과 중 하나 아닐까. 학교 수업에 따라가기 쉬울 것 같다는 작은 기대가 생겼다.
이거 덕분에 백준 티어가 올랐다. 일주일에 최소 10문제를 풀도록 강제당하는 환경이 성장에 좋은 것 같다.
모의고사(Camp Contest)
환급 조건 중 하나는 대회 참여 및 최소 1번의 제출!
4시간 동안 문제를 풀었는데, 기껏해야 1문제 풀고 나머지는 헤매다가 끝날 줄 알았는데 그래도 문제가 풀리긴 했다.
초반에는 앞서나가서 스코어보드 상위권인 걸 지켜보는 재미도 있었다. 뒤 문제는 될듯 말듯 안 풀려서 시간을 한참 썼다.
기억이 안 나는데 15등 이하였던 것 같다. 1~10*n을 표현하려면 등수를 이하라고 말하는 게 맞나.. 아무튼 이전에 실버 문제도 겨우겨우 풀었던 거 생각하면 그래도 만족할만한 성과였다.
물론 여기에서 만족하면 숙대 헤르미온느라고 불리지 않았을 것... 캠프가 끝나고 지금은 복습 중이다. 극초반에는 연습 문제도 풀었는데 그다음에는 필수 문제 푸는 거에 급급해서 건드리지도 못했던 게 아쉬워서 연습 문제도 차차 풀지 않을까 싶다. 기회와 상황이 된다면 이번 여름에 다시 초급반을 수강하고 싶다. 내가 ICPC Sinchon의 외부인이라 다시 수강할 기회가 생길지는 잘 모르겠지만..? 다시 초급반을 수강해서 자신감을 붙이고 대회에서 좋은 성과를 내고 싶다.
댓글