PS/My Diary (PS, 대회후기)

[221203] KUPC 2022 출제 및 운영 후기

kth990303 2022. 12. 3. 22:37
반응형

이 글은 문제에 대한 스포일러가 존재하지 않습니다. 단, 난이도 스포일러는 일부 존재합니다.

 

우리 학교 내에서 알고리즘 경진대회를 운영 및 출제해보았다!

KUPC 2022 포스팅

그동안 알고리즘 대회를 주최하고 싶다고 생각해두고, 복학하게 되면 한번쯤은 대회를 열어봐야겠다고 생각하긴 했다.

다행히 riroan 형이 대회를 주최할 생각이 있다고 했고, 선뜻 나를 운영/출제진으로 초대해준 덕분에 휴학생 신분임에도 불구하고 대회에 출제 및 운영해볼 수 있었다!

 

대회 운영진은 UCPC를 같이 나간 riroan, aru0504와 함께, ICPC 멤버인 delena0702랑 다같이 진행하여 총 4명으로 구성됐다.

riroan이 주로 주최 및 운영에 신경써주었고, 교수님 컨택도 적극적으로 해주었다.

 

대회 자체가 소모임 주최로 운영돼서 학교의 예산을 받을 순 없었다.

하지만, 교수님께서 워낙 파워가 있으신 분이셨기 때문에 상품 관련 예산으로 기계식 키보드 3개를 제공해주셨다!

덕분에 상품 목록이 위의 포스터와 다르게 아래처럼 변경될 수 있었다.

 

교내 첫 알고리즘 대회라는 점, 상품이 많이 준비돼있다는 점 덕분인지 총 56명이 알고리즘 대회에 참여 의사를 밝혀주었다.


대회 진행 전에 적어보는 문제 출제 후기

압도적 XOR 수

어려운 수학문제가 뭐가 있을까? 하고 준킬러~킬러용으로 만들어본 문제.

문제 출제 의도와 달리 조금 더 쉬운 방법으로도 풀리기도 한다. 하지만 이러한 차이가 체감 난이도에 큰 영향을 주지 않았기 때문에 출제엔 문제가 없었다.

 

예상티어는 검수진들마다 의견이 달랐는데, 가장 낮은 예상티어는 Gold IV, 가장 높은 예상티어는 Platinum V였다.

개인적으로는 Gold II라 생각한다. 의도한 풀이와 다른 조금 더 쉬운 풀이가 존재해서 Gold I까진 애매할 것 같다는 생각.

 

KUPC 2022는 3시간에 10문항이라는 시간제한 압박이 상당하다는 점이 존재하며, 이 문제는 맨 끝에 위치한다.

그렇기 때문에 아마 1명 풀까말까 예상했다.

최악의 경우, 문제를 아무도 구경조차 못할 수 있겠단 생각이 들었다. 이 글을 작성하는 시점이 11월 29일(화), 즉 대회 4일 전인데... 제발 이 예상이 틀렸기를 빈다. (이 말은 현실이 됐다고 한다...)

 

킥보드로 통학하기

KUPC 문제 셋에 이 문제에서 요구되는 알고리즘 문제가 없길래 만들어본 문제.

사실상 너무 웰노운이라 출제하기 애매하단 생각도 들긴 했다. 하지만 운영진들이 대부분 문제가 괜찮다고 해주었고, 일부러 체감난도를 높이기 위해 친절한 예제를 일부 빼버렸기 때문에 괜찮겠단 생각도 들었다. (맞왜틀하신 분들이 계시다면 죄송합니다...)

 

개인적인 예상티어는 Silver II라 생각했다.

하지만 검수진 및 출제진 의견을 모아봤을 때 가장 낮은 예상티어가 내가 매긴 Silver II, 가장 높은 예상티어가 Gold IV 였기 때문에 생각보다 어려울 수 있겠다는 생각도 들었다.

또한, 알고리즘 분류를 캐치하기 어렵다는 의견도 꽤 있었다.삽질하는 케이스가 있을 수도 있다는 평.

 

이 문제는 원래 개인적으론 D~E번에 넣으려 했었다. 하지만, 위와 같은 이유들로 인해 어려워질 수 있다고 판단했기 때문에 F번에 배치됐다.

아마 응시자 절반 이상이 이 문제를 풀 것 같다고 예상했으며, 맞왜틀하는 케이스는 상당히 적지 않을까 예상했다.

 

실제로는 프리즈 전 기준 2명, 최종적으로는 3명이 풀었으며 정답률은 약 13%였다.


예비소집 후기

예비소집 화면이다.

예비소집은 11/28(월) 13:00 ~ 12/1(목) 13:00 4일간 진행되게 했다.

대회 참여자들의 플랫폼 적응을 위해 준비했다.

 

 

예비소집이 진행된지 하루 쯤 됐을 때 스코어보드

예비소집 문제는 어려우면 안된다고 생각했기 때문에 A, B는 쉽게 내도록 했다.

제출 및 채점현황 확인, 정답 여부 확인을 할 수 있어야 됐기 때문에 A는 매우 쉽게 냈고, B는 c++ 유저라면 절댓값을 치지 않을 때 WA를 받을 수 있게 출제됐다. 실제로 B번은 많은 유저들이 맞왜틀을 외쳤다. (저는 예비소집 출제 안했습니다 저는 무죄예요!)

 

C는 약간 어려우라면 어려울 수 있다고 생각한다.

정사각형들을 이어붙여서 최종적으로 큰 정사각형을 찾는 브루트포스 + 아이디어 문제로 냈다. 예상티어는 주관적인 견해로 Silver III 정도가 되지 않을까 싶다. 원래 KUPC 본 대회 초반부에 내려 했는데 의외로 사람들이 어려워해서 애매한 난이도가 됐다고 판단, 예비소집 맨 마지막으로 이동시켰다. 

 

예비소집은 A만 제출하고 안하는 사람들이 많을 줄 알았는데, 생각보다 다들 끝(C번)까지 풀려고 노력해줘서 감동이었다. 

최종적으로 34명이 제출해주셨고, 14명이 올솔을 해주었다.

 

본 대회에는 몇 명이 참여할지 궁금하다.


대회 당일 후기

본 대회는 12월 3일 토요일 12시 50분 ~ 17시 30분까지 오프라인으로 진행했다!

 

대회 시작 전, 그리고 대회 참여자들에게 주는 스티커 ㅎㅎ

새천년관 403호에서 진행했으며, 실제로 많은 분들이 참석해주셨다 ㅎㅎ 총 31명이 참석해주셨다!

전날에 포르투갈전 월드컵 조별예선 경기가 있었어서 오늘 30명정도 오지 않을까 예상했었고, 실제로 거의 적중했다.

 

대회 시작 후 열심히 풀어주시는 참가자분들

대회가 시작한지 10분 정도가 지난 즈음에 찍은 사진이다.

5분 정도 지나니까 처음으로 문제 정답자가 나오기 시작했고, 10분쯤 지나니 연달아서 정답자가 나오기 시작했다.

대회 시작 30분 후

운영진들이 코드포스 status를 통해 제출된 코드들을 쭉 살펴보고 있었으며, 이 정도 페이스면 올솔도 나올 수 있겠다 예상했다.

B번이 특히 int에서 오버플로가 발생해서 맞왜틀(맞았는데 왜 틀림?) 현상을 심하게 겪는 분들이 많았다. 대회 시작한지 45분 정도 후에 `정답이 32비트가 넘어갈 수 있다`는 공지로 간접적으로 도움을 드렸다.

 

 

대회 시작 약 1시간 정도에 찍은 사진이다.

ABC는 상당히 빨리 풀리는 반면, DE가 거의 수문장 역할이었다. 

ABC는 정답자 수가 상당히 많았던 반면, DE는 정답자 수가 상당히 적었다. D, E번에서 실제로 많은 분들이 오버플로 실수 또는 런타임에러를 많이 겪었다. 

이때쯤부터 올솔은 기대하지 않았던 것 같고, 내가 출제한 F번이 한명이라도 풀어줬음 좋겠다는 생각을 한 것 같다. 

대회 운영진들의 카톡방 대화

실제로 F번 첫 정답자가 나왔을 때 너무나도 감격스러웠다ㅋㅋㅋ

J번도 과연 1제출이 나올 수 있을 것인가? 기대했던 순간이었다. ㅎㅎ (아쉽게도 그 기대는 충족되지 못했다 ㅜㅜ)

 

프리즈 이후 스코어보드

대회에서 7솔한 사람이 나오거나, 대회종료 1시간 전이면 스코어보드가 프리즈되게 했다.

7솔한 사람이 이 때 당시 나오지 않아, 대회종료 1시간 전 조건으로 스코어보드가 프리즈됐다. 따라서 다른 사람들의 제출여부는 보이지만 정답여부는 알 수 없게 해주어 최종등수를 예측할 수 없게 해두었다.

 

 

최종 스코어보드는 여기서 확인할 수 있다.

http://scoreboard.riroan.com/kupc

 

Spotboard

Spotboard from algospot.com, wookayin and Being CSUS Programming Contest System Icons from FatCow

scoreboard.riroan.com

가장 높은 성적을 받으신 분께서 7솔을 해주셨다. 특히 신기했던건 F번을 의도한 풀이대로가 아닌 다른 자료구조를 이용해서 풀어주셨다는 점이다. 확실히 F번이 알고리즘 분류를 캐치하기 어려웠나보다.

 

J번은 정답자가 0명이었다. 예상했던 결과였다.

 

출제진들이 의도한 난이도, 내가 출제한 F, J번!

 

내가 출제한 문제인 압도적 xor수는 0명이 해결했으며, 킥보드로 통학하기는 3명이 해결했다.

아무래도 3시간 10문항이다보니 맨 끝 문제를 열람하는 사람이 없을 수 있겠다는 생각을 하긴 했다. 근데 이게 현실이 되니까 생각보다 슬펐다ㅋㅋ 열심히 만들었는데... ㅜㅜ 

 

킥보드로 통학하기는 생각보다 적은 인원이 문제를 해결했다. 예상한 건 약 20명 정도였지만, 실제로는 단 세 분이 해결해주셨다. D, E번에서 실수하는 케이스들이 많았기 때문이기도 하고, F번의 알고리즘 태그를 캐치하기 어려웠던 것도 한 몫하지 않았나 싶다.

킥보드로 통학하기를 좀 더 뒤로 배치하고, 그 뒤에 문제들을 조금 앞으로 당겨야된단 의견이 조금 있었긴 했다. 그 의견대로 했다면 결과가 어땠을지도 궁금하다.

 

 

대회가 끝나고 프리즈된 스코어보드를 차례차례 공개했다!

프리즈 상태였기 때문에, 제출여부만 알 수 있고 정답여부는 모르는 상황에서 차례대로 정답여부를 공개한 것이다.

그렇기 때문에 프리즈 기준 등수와, 실제 등수가 달라지는 경우가 빈번했다. 이러한 점이 실제 오프라인대회의 재미이자 묘미인 것 같다 ㅎㅎ

 

가장 인상깊었던건 E번을 11번 틀렸음에도 불구하고 끝까지 노력해주셔서 AC를 받은 분이 있었다는 점이다. 정말 너무너무 고마웠다. 우리가 열심히 만든 문제를 포기하지 않고 끝까지 풀어주셨다는 점이 정말 감동이었다.

 

 

수상권(~11등)에 해당되지 않는 분들 중 아래 조건에 만족하는 분들은 특별상으로 스타벅스 5000원권을 지급했다.

 

특별상 조건은 아래와 같았다!

[얼음땡 상] 1. 프리즈 이후 가장 첫 solve
[만쥬의 밥상] 2. 각 문제 제출 수로 만쥬의 식사를 풀었을 때 답이 가장 작은 사람 (동점자는 합이 가장 작은 사람 + 마지막 제출이 빠른 사람)
[마라토너 상] 3. 첫 제출과 마지막 제출의 시간 차이가 가장 큰 사람 (동점자는 마지막을 더 늦게 낸 사람)
[압도적 감사상] 4. 압도적 XOR을 특정 방법으로 해결한 사람 (없으면 [정상에 오르다] 제출 메모리의 합의 LIS가 가장 긴 사람 (동점자는 메모리 합이 더 큰 사람))
[노력이 가상] 5. 가장 많이 제출한 사람 (동점자는 마지막 제출이 빠른 사람)
[KUPC 기념왕 상] 6. 제출 실행시간 합을 1203으로 나눈 나머지가 가장 작은 사람 (동점자는 실행시간 합이 더 작은 사람)
[슬픈 건대생 상] 7. 가장 많이 틀린 뒤에 맞은 사람 (동점자는 어려운 문제 푼사람 + 빨리 푼 사람)
[앗차 상] 8. 마지막 오답이후 정답이 가장 빠른 사람 (동점자는 정답이 더 빠른 사람)
[헬멧은 꼭 차주상] 9. 킥보드로 통학하기를 가장 빨리 맞힌 사람 (없으면 [라솔상] 가장 마지막에 제출한 사람)
[생각하는 동상] 10. 정답 제출 시간 차이가 가장 큰 사람(동점자는 마지막 제출이 가장 느린 사람)

 

특별상 대상에 포함됐던 한 분이 시상식 이전에 대회장을 나가셔서 해당 상품을 못받은 경우가 있어서 아쉬웠다 ㅜㅜ

해당 스벅 e카드는 마지막에 랜덤으로 운영진과의 가위바위보를 통해 다른 분께 지급해드렸다.


대회가 끝나고, 우리 대회를 후원해주신 chris ohk님께서 엄청나게 맛있는 중화요리집에 데려가주셨다! (진짜 너무너무 감사합니다...)

생전 처음 먹어보는 음식들이었고 너무나도 맛있었다.

특히 중국 8대명주에 속하는 양하대곡의 향이 너무나도 신기하고 묘했다. 약간 사과향? 초록색맛?이 느껴지는 신기한 맛이었다.

 

KUPC 2023부터는 백준에서도 열릴 수 있었음 좋겠다.

알고리즘 동아리가 만들어지면 가능하지 않을까 예상한다.

이후에 기회가 되면 해당 문제들을 백준 오픈콘으로 내보려고 한다.

정말 뜻깊은 경험이었다 :)

반응형