2020 인하대학교 프로그래밍 경진대회(IUPC)
Dev

2020 인하대학교 프로그래밍 경진대회(IUPC)

12월 말, 친구에게 제 6회 인하대학교 프로그래밍 경진대회(IUPC)가 개최된다는 소식을 접했다. 2학년을 다니던 2019년에는 실력의 부족과 대회 참여에 대한 막연한 두려움으로 IUPC에 참가하지 않았는데, 도전해보지도 않고 포기해 후회가 남았었다. 이번 대회는 코로나-19로 인해 온라인 방식으로 개최되고, 재학생 뿐만 아니라 휴학생도 참가할 수 있었다. 덕분에 나와 마찬가지로 군인 신분이었던 친구 역시 참가한다고 했다. 비록 현재는 알고리즘을 접한 지 1년이 넘어 실력이 오히려 더 떨어졌지만, 좋은 경험이 될 것 같아 참가하고 싶다는 생각이 들었다.

 

인하광장에 업로드된 IUPC 홍보 포스터

 

대회에 참가하려면 팀을 구성해야 했는데, 운 좋게도 친한 형 한 명과 나와 마찬가지로 군 복무중인 친구를 설득해 팀을 구성했다. 우리 셋 모두 실력이 뛰어나지는 않았기 때문에, 수상은 생각도 하지 않고 대회 참가 자체에 의의를 두기로 했다. 문제 구경 겸 대회 산책이 목표라, 팀 명은 '산책하러왔습니다'로 정했다. 군 휴학생 참여가능 여부와 예비 소집, 진행 방식 등 궁금한 점을 해결한 뒤, 속전속결로 바로 참가신청서를 제출했다.

 

속전속결로 제출한 IUPC 참가 신청서

 

비록 수상을 노리지는 않았지만, 이왕 참가하는 김에 최대한 노력해보자는 생각이 들었다. 2019년 자료구조 과목을 수강할 때 교수님이 제공해주신 강의 자료와 직접 짠 코드들을 잘 모아두었었는데, 우선 이를 바탕으로 복습하고자 결심했다. 복습이 끝나면 친구에게 받은 알고리즘 자료와, 백준에 올라와 있는 2019 문제를 풀어 볼 계획이었다. 오랜만에 프로그래밍 공부를 한다는 생각에 신이 났고, 서둘러 당시 열중하던 Rewind 2020 글 작성을 끝내고 자료구조 복습에 들어갔다. 하지만, 준비 기간에 예상치 못한 큰 일이 있었고, 이 때문에 추가적인 공부는 커녕 자료구조 복습조차 하기 힘들었다. 다행히 문제는 대회 날 이전에 어느 정도 해결되긴 했지만, 부족한 준비로 인해 자신감도 없었고, 멘탈도 상당히 좋지 않은 상태라 걱정이 되었다.

 

2019년 2학기 자료구조 수업을 수강하며 작성한 코드. 이번 대회를 준비하며 복습에 활용했다.

 

시간이 흘러 대회 날이 밝았다. 대회는 14시부터 18시까지 진행되었다. 시작 후 얼마 지나지 않아 제일 쉬운 문제였던 A번 문제를 해결했다. 첫 문제부터 어려울 줄 알고 긴장하고 있었는데, 생각보다 쉽게 해결 해 꽤나 긴장이 풀렸다. 이후 팀원 형은 조금 더 시도해보다가 떠났고, 나는 B번 문제를, 친구는 문제 제목에 이끌려 J번 칠리소스 문제에 도전했다. 시간이 꽤나 흘렀고, 지속적인 디버깅과 코드 수정을 통해 마침내 나는 비주얼 스튜디오 상에서 B번 예시 입출력에 성공했다. 하지만, 비효율적인 알고리즘 탓에 채점 상에서는 계속 '시간 초과'로 표시되어 멘탈에 금이 갔다. 친구 역시 맛있어보이던 제목에 속아 도전한 J번에서 고전하고 있었다. 결국 나와 친구는 각각 B번과 J번을 포기하고, 스코어보드 상 A번 다음으로 정답률이 높았던 G번 문제에 매달리기 시작했다. G번 문제는 내용만 잘 이해하면 구현은 어렵지 않은 문제였고, 막힘없이 코드를 작성해 나갔다. 하지만 다른 문제에 시간을 많이 뺏겨 G번을 너무 늦게 시작했고, 결국 해결에 근접했으나 성공하지는 못한 체로 대회가 종료되었다.

 

대회가 종료된 후 우리 팀의 최종 스코어보드

 

결과적으로, 우리 팀은 총 12개의 문제 중 겨우 하나의 문제를 해결했다. 하위권에서 맴도는 성적이었다. 하지만, 당시 3개의 문제만 해결해도 상위 10팀 안에 들 정도로 전체적으로 대부분의 팀이 고전하던 상황이었는데, 하나의 문제를 해결한 후 포기하지 않고 노력해 2개의 문제에서 해결에 근접해 꽤 뿌듯했다. 물론 해결에 근접했지만 결국 해결하지는 못해 굉장히 아쉽기도 했다.

 

대회 종료 직후, 나중에 작성한 코드를 재검토하며 다시 풀어볼 겸, 코드 포트폴리오도 만들 겸해서 A, B, G번 문제에 대해 내가 작성한 코드를 모두 Github에 업로드했다. 다음 날 야간 연등 시간에 해결에 가장 근접했던 G번 문제를 다시 풀어 보았다. 얼마 지나지 않아 시간에 쫓겨 실수했던 부분을 발견, 수정했고, 바로 정답을 맞출 수 있었다. B번의 경우, 추후 Sort 알고리즘에 대해 제대로 복습한 이후 다시 도전해 보려고 한다.

 

Github에 저장한 이번 대회의 코드들

 

대회 이후 수정한 G번 문제 코드

 

이번 IUPC는 나의 첫 대회 참가였는데, 막연한 두려움을 깨고 실제로 대회에 참여했다는 점에서 큰 의미가 있었다. 또, 좋은 성적은 아니었지만, 과정과 경험에 의의를 둔 대회였기 때문에 만족스러웠다. 무엇보다도 군대라는 열악한 환경에서 도전했기 때문에 더욱 보람찼다. 실제로 친구는 사지방에서의 프로그래밍 환경 세팅으로 시작이 늦었고, 중간에 울타리 순찰을 다녀오기도 했다. 나 역시 도중에 제설 작업에 동원되어 흐름과 집중이 끊기는 등의 어려움이 있었다. 어려운 환경 속에서 스스로를 다잡으며 집중하고 노력한 이 기억은 다음을 위한 좋은 밑거름이 될 것이다. 이를 바탕으로 꾸준히 노력하고 도전한다면, 다음 기회에 반드시 더 나은 성적을 거둘 수 있을 것이라고 믿는다. 

 

2021.01.09 ~ 2021.01.13