알고리즘/후기

2023 전남대학교 PIMM 알고리즘 파티 후기

b1ackhand 2023. 9. 5. 23:25

같은 동아리 후배 belline0124 가 알고리즘을 공부하는 우리들에게 백준에 OpenContest를 열어보지 않겠냐는 제안을 했다. 그리고 그 제안을 하고나서 머지않아 바로 스케쥴링 및 실행에 앞섰고 23.09.03 이를 실행하고야 만다.

 

준비과정

 

처음 운영해보는 대회 이기 때문에 사전조사가 사실 더 중요했다. 대회는 어떤 식으로 진행하는가? 검수는 어떻게 해야하는가? 무엇을 준비해야하는가? 등과 같다. 따라서 우리 팀원들이 직접 검수를 하면서 대회의 진행방식을 조사하였고 이를 추합하여 운영 방침을 잡았다. 

 

크게보면 대회 과정은 다음과 같다.

1. 문제 출제

2. 문제 검수

3. 대회 홍보

4. 대회 개최

5. 상품 수령

 

전남대학교 같은 경우에 대회를 열기 어려운 가장 큰 이유는 사실 1번에 있다. 백준 문제의 출제 자격 A를 보자.

이를 만족하는 인원이 사실 재학생중에 많이 없다는 슬픈 사실이다. 하지만, 이번에 출제를 담당한 인원들은 이를 모두 만족 하였고, 메인 리더의 지휘에 맞게 제시간안에 각자 2~3개 씩 괜찮은 문제들을 준비해왔다. 다음은 난이도 커브 조정이다. 본인이 내고 싶은 문제를 막 냈다가는 대회가 엉망이 될 수 도 있으니 문제들을 살펴보며 이상한 문제들은 없애고 난이도에 맞게 문제를 선정한다. 이렇게해서 최종적으로 예비 포함 7문제 정도 선정되었다. 중간에 문제에 오류가 있어 폐기하고 다른 문제를 내는 등의 사고가 있었지만 잘 진행 되었다.

 

문제 출제는 어떻게 하는가? 라고 한다면 https://polygon.codeforces.com/ 이 사이트를 이용한다. https://evenharder.tistory.com/1 이 블로그에 나와있는 내용을 그대로 따라가면 누구나 쉽게 문제를 출제 할 수 있다. 요약한자면 문제의 testcase, validator 등을 만들 고 테스트 할 수 있는 사이트다. 모든 문제가 완벽히 준비됐으면 검수를 받을 준비를 하면된다.

https://www.acmicpc.net/board/view/122622

다음과같은 홍보게시판을 이용하여 검수자 분들을 모았고 8분의 검수자들을 맞이하게 되었다. 8분의 검수자를 맞이하기 전에 환경을 준비해 놓는다. 선정된 문제들을 디스코드에 채널 형식으로 준비하고 안에서는 문제들에 대한 이야기를 나눈다. 

 

노션, 구글 스프레드시트 등을 활용 하여 검수자의견, 검수시트들을 미리 만들어놓고 문제 난이도, 테스트케이스 오류, 지문의 오류 등의 다양한 검수를 받게 된다.

 

검수가 완료될때 쯤 백준 사이트에 메일을 보내 대회 날짜, 주최자, 검수자 등의 정보를 보내게 된다. 그렇게 되면 https://stack.acmicpc.net/ 에 문제 출제 권한이 주어지고 polygon에 준비한 내용들을 stack에 옮기게 된다.

그리고 진행하며 solved.ac 보상인 배경/ 뱃지 등록 및 대회 홍보도 빼먹어서는 안된다.

 

D-day

문제 설정이 완료되면 이제 기다리기만 하면된다. 스코어 보드에 사람들이 문제를 풀면 하나씩 올라가고 우리들의 문제들은 57분만에 모두 함락 당하고 말았다. 대회가 진행되며 discord에 webhook을 걸어 질문사항이 오면 실시간으로 대답해 줄 수 있게 준비해야된다.

 

문제후기

A번, B번을 내가 맡게 되었고 A번은 내 학점을 계산하다가 생각난 아이디언데 비슷한 문제가 있는지 찾아보느라 시간이 걸렸다. B번은 원래 내기로 한 문제가 중간에 폐기되어 급하게 만든 문제인데, 문제 주제를 다른 사람한테 받고 그리디 알고리즘을 적용할만한 문제를 생각하게 되었다. 에디토리얼을 보면 알 수 있듯이 N, M의 값을 늘리면 난이도를 더 높일 수 있었을텐데, 전남대학교 재학생의 참여도를 높인다는 목표도 있었기 때문에 쉽게 냈다.

 

C번은 음.. 약간 다른 문제였는데 문제 자체의 오류를 고치려다가 새로운 문제로 탈바꿈하게 되었다. 문제의 큰 틀은 바뀌지 않았는데 약간의 아이디어가 더 추가되었다.

 

D번은 생략하겠다. 초기 기획은 K > 0 일때만 주어졌는데 출제자가 너무 쉽다고 생각하여 K < 0 케이스를 추가하였다. 그리고 대회에서 가장 낮은 정답률을 보여주었다.

 

E번은 문제를 들었을 때 부터 좋은 문제라고 생각했다. 검수진분이 세그 풀이를 들고 왔을 때, 실제 대회에서는 세그 풀이도 많이 보일 것 같은 느낌이 들었고 아이디어만 잘 생각한다면 더 쉽게 해결 할 수 있다.

 

F, G번은 내 손을 벗어난 문제들이다.

F번의 경우에 읽어봤을때 뭔가 이런식으로 접근해야 될것 같다 라는 생각이 바로바로 들었는데, 그런식으로 접근하는게 맞는 것이었다. 하지만, 해당 지식을 모른다면 시간초과의 늪에서 나올 수 없을 것이다.

G번은 출제자를 제외한 운영진에서는 풀 수가 없었다.. 마지막 까지 이 문제가 풀리지 않았는데, 다행히 검수진분들이 해결을 하면서 문제의 신뢰성이 생겼다. 문제에 오류는 없을까 조마조마하며 봤는데 누군가가 해결하는 것을 보고 감탄을 금치 못했다.

 

결론 :

처음 운영해보는 대회지만 메인 리더인 belline0124 가 군복무중임에도 불구하고 완벽하게 일들을 수행하고 프로젝트 리딩을 해갔다. 뿐만아니라 다른곳에서 군복무하는 0do 는 핌알고리즘파티에서 가장 어려운 문제를 오류 없이 만들어 냈다. 그외에 jh01533, jjkmk1013, onsbtyd 모두 자기 할일이 있어도 늦지않게 문제들을 성공적으로 만들고 다른 사람이 바쁠때 필요한 내용들을 서로 수정해줬다. 많은 도움을 주신 검수자 분들과 대회를 위해 스폰도 해주신 utilForever님 대회 참여해주신 많은 분들께 감사 인사를 드리며 이상 마치도록 하겠다.