유사코 일대기
유사코를 풀면서 있었던 일과 알고리즘 공부에 대한 내 생각
아마 대부분의 사람들은 USACO를 들어보지 못했을 것이다. 심지어 CS를 전공하는 사람 중에 PS(Problem Solving)를 해본 사람들마저 처음 들어봤을지도 모른다. USACO는 USA Commputing Olympiad의 약자로 번역하면 미국 정보 올림피아드이다. 보통 미국에 있는 혹은 미국 대학 진학을 희망하는 중, 고등학생들이 많이들 준비하는 대회이지만 문제의 퀄리티가 준수하여 PS를 취미로 가지는 많은 사람들이 재미삼아 풀어보는 대회이다.
대학교에 입학하고 알고리즘에 관심을 가지게 되면서 자연스럽게 BOJ(BeakJoon Online Judge)에 가입하여 문제를 푼다. 기초적인 개념을 모두 공부하고 본격적으로 실력을 쌓으려는 시점에 많이들 벽에 막힌다. 특정 문제를 풀지 못하거나 혹은 내가 어떤 문제를 풀어야 성장할 수 있을지 고민하게 된다. 나도 마찬가지로 실력 향상이 막힐 때가 있었다. 인터넷을 찾아보다 백준푸는방 오픈카톡을 찾게 되었고 커뮤니티에서 많은 질문들을 던지고 대화하다보니 친구, 동생, 선배들을 만나게 되면서 나의 실력이 향상되고 시야가 넓어지는 계가가 되었다. 심지어 지금 글을 업로드할 블로그 또한 이 방의 마녀님 블로그를 참고하여 만들게 되었다.
다시 본론으로 돌아와서 오픈톡방에 USACO를 푸는 친구들을 따라 한 두 문제씩 풀어보게 되었고 ICPC라는 한국에서 가장 규모있는 대학생 대회에서 30위권이라는 괜찮은 순위에 오르게 되었다. 예전부터 나는 과외를 하며 내가 공부해왔던 방법과 방향을 학생들에게 가르치고 싶다는 생각이 있었는데 대학교 2학년을 졸업하고 3학년이 되려던 시기에 한 분의 도움으로 USACO를 가르치는 학원에서 강의를 할 수 있게 되었다. 2021년 말부터 시작했으니 2025년 기준으로는 벌써 5년차가 되었다.
쌓인 풀이들을 정리하기 위해 레포지토리를 작성해봤는데 생각보다 많은 관심으로 인해 내가 작성한 글 치고는 많은 스타를 받게 되었다. 물론 나와 면식이 있는 사람들이 꽤 있긴 하지만 관심을 받게 되니 더 많은 글을 작성하는 동기가 되었다.
레포지토리를 공개적으로 작성하다보니 재밌는 스토리도 생기게 되었는데 내 풀이를 보고 해외에 사는 어떤 학생(으로 추정되는 사람)이 한 통의 메일을 보내왔다. 이번 유사코 대회의 풀이를 작성해서 보내주면 돈을 보내주겠다는 것이다. 돈을 싫어할 사람은 없지만 내가 알고리즘에 쏟은 시간에 존중을 해치는 일이라 생각하여 무시하였다. 인터넷이 신기한게 언어와 나라가 다른 먼 곳에서 이상한 목적으로라도 연락이 닿는다는 것이다.
USACO를 잘 모르는 사람들은 풀이를 작성해봤자 대회가 끝난 후니 의미가 없지 않냐라는 의문을 가질 수 있는데 유사코는 4일에 걸쳐 어떤 때든 4시간의 대회에 참여할 수 있는 프리한 참여규정을 가지고 있다. 아마 해외에 있는 어떤 국가든 참여할 수 있게 만든 것으로 예상되지만 불공정한 행위의 가능성을 열어둔 것이기도 하다. 개인적으로는 불만을 가지고 있지만 대회의 운영측도 인지하는 부분이라 생각된다.
최근에는 크고 작은 일이 있어 솔루션 코드 외에 해설을 올리지 못하고 있지만, 나는 특정 문제에 대한 깔끔하고 이해하기 편한 양질의 솔루션이 대량으로 있다 하더라도 그게 실력을 빠르게 향상시키는 길이라고는 생각하지 않는다. 오히려 불친절하게 코드만 던져주는 경우가 더 도움되는 경우도 있다. 좋은 답이 있더라도 내가 동일하게 짤 수 있는 코드가 아니면 소용없지 않은가. 중, 고등학생 때 잠시 다닌 코딩 학원이 있다. 처음 언어를 배울 때 잠시 선생님이 도와주다가, 어느정도 실력이 오르면 한 문제를 며칠동안 풀지 못하는게 아니면, 어떤 도움도 주지 않았던 선생님이 있었다. 이상하다고만 생각했던 그 교육 방식으로 많은 정보올림피아드 수상자가 배출되었는데 지금 생각해보면 그 특이한 방식이 정론이였던 것이다. 오로지 나 혼자 떠올린 생각만이 실전에서 발휘될 수 있다. 지금은 나도 그 선생님의 방식에 동의하며 방치처럼 보이는 교육관을 적용하고 있다.
무책임하다고 생각될 수 있는 교육 방식이지만, 교육 경험이 쌓이면서 학생 성향에 따라 방치의 정도(이렇게 보면 표현이 웃기다.)를 조정하고 있다. 그 결과로 매년 몇 학생의 목표를 성취할 수 있었다.
아무튼 결론이다. 알고리즘을 어느정도 공부한 사람이 상승무공을 찾고 있다면 USACO를 추천한다. 그리고 문제는 단지 수단이지 절대 방법이 되어서는 안된다. 내가 푼 문제가 실력을 채워주는 것이 아닌 내가 한 고민의 질이 실력이다.