프로그래밍/알고리즘

[알고리즘] KUPC 2022 출제/운영 후기

riroan 2022. 12. 5. 00:43

이번에 건국대학교 교내 알고리즘 대회 KUPC를 개최하게 되었다.

뭐든지 대회를 참여만 해서 개최하고 운영하는건 처음이었는데 좋은 경험을 얻은 것 같다.

운영을 하면서 배운 것과 느낀점, 뒷이야기 등이 많아 기록해두려고 한다.

 

이번 운영진은 UCPC팀원과 ICPC팀원의 합집합으로 구성되어있다.

riroan, aru0504, kth990303, delena0702

 

개최하게 된 이유

UCPC가 끝나고 알고리즘 문제에 대한 아이디어가 마구마구 샘솟아서 어딘가에 문제를 출제하고 싶었다.

하지만 백준에 출제하려면 적어도 2000문제를 풀어야했는데 아마 몇백문제 남아있었던 것 같다.

그렇게 찾다가 나온 사이트가 누구나 출제할 수 있는 삼성 SW Expert. (문제는 여기)

위에 냈는데 더 많은 사람이 봤으면 하는 욕심이 생기고 2000문제도 가까워져서 브론즈 문제 학살하면서 2000문제를 달성했다.

aru0504와 kth990303에게 검수를 요청해서 백준에도 문제를 내게 되었다.(조합의 합의 합 <- 이산수학 책 보다가 떠오른 문제)

이게 너무 재밌어서 우리학교에 PS 동아리가 생긴다면 대회 개최를 꼭 해서 문제를 내는게 목표였다.

하지만 동아리 회장예정인 aru0504가 2학기엔 만들 수 없을 것 같다고 해서 슬퍼하다가 그냥 교내 대회로 개최를 맘먹었다.

그래서 ICPC 팀연습하다가 aru0504와 delena0702에게 제안을 했더니 너무 좋다고 수락했다.

그 후 kth990303에게도 연락해서 4명이 운영진으로 시작하게 되었다. ㅋㅋ

 

고려해야하던 사항

다른 알고리즘 대회 개최 후기를 많이 참고해서 고려해야할 사항들을 체크해가며 준비할 수 있었다.

크게 다음과 같다.

  • 문제 난이도
  • 대회 플랫폼
  • 상품
  • 문제 검수
  • 대회 장소

 

문제 난이도

aru0504가 건국대학교에 PS동아리가 있던 2019년도에 대회 출제 경험이 있어 난이도 선정에 길라잡이를 해주었다.

출제진과 참가자가 생각하는 난이도 차이와 대회라는 압박때문에 쉽게 내야한다는 의견이 우세했다.

백준 대회를 참여할 때도 어렵다고 생각한 문제가 실버~골드가 많이 찍혀서 많은 공감이 됐다.

그래서 출제자가 생각하는 난이도 기준으로 브론즈 3, 실버 3, 골드 4 정도로 출제를 하자고 했다.

문제는 난이도 순서대로 배치했다. (하지만 채점 현황을 보니 체감난이도는 많이 달랐던 것 같다.)

 

대회 플랫폼

학교 자체 OJ가 없다보니 플랫폼을 선택해야 했다.

가장 먼저 생각하고 있던 플랫폼은 ICPC에서 사용되는 DomJudge였다.

그냥 집컴을 서버로 사용하려고 했으나 교수님이 안정성에 문제가 있을 수 있다고 반대하셨다.

그래서 두 번째 대안으로 나온게 교수님이 추천한 삼성 SW Expert.

위 사이트는 누구나 자유롭게 문제를 출제할 수 있지만 순위산정이나 오픈돼있기 때문에 대회로는 부적절하다고 생각했다.

남은건 백준인데 검수자 비용이슈때문에 일단 보류상태였다.

그러다가 코드포스에서도 문제를 만들고 대회를 만들 수 있길래 열심히 알아봤다.

무료이고 순위도 구해지고 서버도 가끔 이슈가 있긴 하지만 안정적이니 가장 좋은 플랫폼이었다.

그렇게 코드포스로 결정을 했다.

aru0504가 spotboard를 개조해서 scoreboard로 사용했다. (document가 없어서 고생했다고 한다...)

 

상품

순위상품 + 특별상품 + 참가상품 으로 큰 틀을 잡았다.

처음에 순위상품이 키보드 / 보조배터리 / 문화상품권이었는데 보조배터리보다 무선이어폰이 수요가 높을 것 같아 키보드 / 무선이어폰 / 문화상품권으로 변경했다.

키보드도 원래 1등에게만 줄 예정이었으나 교수님께서 3개를 지원해주셔서 상위 3명 상품으로 하였고 1등에게는 치킨 기프티콘을 추가했다. (교수님 감사합니다. ㅠㅠㅠ)

특별상품은 스타벅스 카드로 하고 참가상품은 스티커로 하였다.

상품들의 가격대가 부담이 안돼고 무난한 상품으로 잘 정한 것 같다.

 

aru0504가 utilForever님의 후원을 받아 참가상품 비용을 지원받게 되었다. (감사합니다!!)

처음엔 학교지원도 받기 힘들어서 모두 개인 사비로 진행할 예정이었으나 예상치 못한 많은 지원을 받아서 너무 감사했습니다.

 

참가상인 스티커

문제 검수

출제자 외의 사람들이 느끼는 문제는 또 다를 수 있어서 외부 검수인이 필요했다.

출제 경험이 많으신 교수님, 운영진의 지인들, 세종대 ICPC팀이 검수를 해주셨다.

예상치 못한 문제의 오류나 난이도가 많이 발견되었고 많은 피드백을 많이 해주셔서 좋은 문제가 되도록 수정할 수 있었다.

 

대회 장소

사실 이게 가장 큰 문제였다.

온라인으로 하자니 상품전달이 문제였고 오프라인으로 하자니 장소를 구하는게 문제였다.

아래 조건을 모두 만족하는 공간이어야 했다.

  • PC가 있어야한다.
  • 자리마다 콘센트가 있어야한다.
  • 대회 참가자를 수용할 수 있어야한다.
  • 마이크와 스크린이 있어야한다.
  • 네트워크가 원활해야한다.

신청자가 50명정도여서 중규모 이상 강의실이면서 PC가 있는 새천년관을 대여하기로 했다.

원래 학부생이 대여는 안되지만 교수님께서 힘써주셔서 대여할 수 있게 되었다.

 

힘들었던 점

문제 출제가 가장 힘들었다.

문제 아이디어와 컨셉은 금방 떠올랐는데 아래 사항들에서 많이 막혔다.

  1. 내가 의도한 바를 상대에게 정확히 전달할 수 있도록 하는 디스크립션
  2. 내가 의도하지 않은 풀이를 막는 데이터

글 쓰는게 정말 힘든 것 같다. (어렸을 때 쓰기시간에 열심히 했어야 했는데..)

다행히 검수자분들이랑 운영진들이 많이 지적해줘서 고칠 수 있었다.

python과 c++을 모두 허용하다보니 둘 다 해결할 수 있는 데이터와 시간제한이 필요했다.

python이 n^2으로 겨우 통과하는게 c++에선 n^3으로 쉽게 통과가 될 수 있기 때문이다.

이건 내 문제는 이런 영향을 크게 안 받았는데 다른 운영진들이 힘들어했다.


내 대학생활 졸업전 마지막 컨텐츠였는데 재미있고 무사히 마치게 되어 너무 좋았다.

모두들 우테코나 학교공부로 바쁜데도 대회준비도 열심히 해서 너무 고마웠다.

나는 이제 졸업이지만 앞으로도 이 대회가 이어지고 건국대학교도 PS/CP에 대한 활동이 많이 활성화되면 좋을 것 같다.

 

+ 추가

백준에 대회 문제중 일부가 업로드 되었다.

https://www.acmicpc.net/problem/27977

https://www.acmicpc.net/problem/27978

https://www.acmicpc.net/problem/27979

https://www.acmicpc.net/problem/27980

https://www.acmicpc.net/problem/27981

 

실제로 매겨진 난이도와 예상 난이도의 차이가 좀 컸던 것 같다 ㅋㅋ