본문 바로가기
글/기타

2022 인하대학교 프로그래밍 경진대회 (IUPC) 운영 후기

by 유시은 2022. 5. 24.

2022 IUPC 포스터

무려 3년 만의 오프라인 IUPC다.

나는 코로나19 이전엔 PS나 교내 활동에 관심이 없었어서 오프라인 대회에 참여해본 적이 없다. ㅠㅠ

이번에도 오프라인 대회의 현장감을 오롯이 느끼진 못했지만, 정말 두근거리는 일도 많았고 큰 동기부여가 되었다.

 

운영진 : 39dll, ruz, anz1217, yuja, 나

매우 훌륭한 검수진 : gumgood, jh05013, jhnah917

 

 

대회 준비

현장대회는 준비할게 생각보다 엄청 많다.

예산 관리, 후원사 컨택, 대회 장소 준비 등등... (내가 하진 않았다. ㅎㅎ)

 

그런데 3년 전 대회를 운영하신 선배님들은 모두 졸업하셨고, 따로 인수인계도 받지 못해서 굉장히 곤란했다.

다행히 동아리 과거 운영 기록과 고학번 운영진들의 참여 기억 덕분에 맨땅에서 시작하진 않았다.

 

나는 문제 출제와 (포스터 제외) 거의 모든 디자인을 담당했다.

 

 

문제 출제

처음 운영진이 모인 2022년 초엔 대회 일정부터 정해야 했다.

학기 중이면서 굵직한 대회나 코테 시즌과 겹치지 않는 5월 말로 결정됐고, 석 달 남짓한 시간 안에 출제 및 데이터를 완성해야 했다.

 

특히 ICPC 연습 대회라는(사실 처음 들었다) 명목을 포기하고 개인전으로 결정한 이유는 다음과 같다.

  • 비대면 학번이 주류가 되어 팀 구성의 어려움이 예상됨
  • 작년 대회에서 드러난 PS 인구 대거 졸업

그에 따라 전체적인 문제의 난이도를 낮추고, 문제 수도 10개로 줄였다.

특히 ANZ님이 조율에 힘써주셔서 매우 균형 있는 난이도와 이상적인 스코어보드를 얻게 되었다.

 

나는 다음 세 문제를 최종 출제하게 되었다.

 

A. 경로당펑크 2077

브론즈가 한 문제도 없어서 만들었다.

한 문제도 풀지 못하고 퇴실하는 슬픈 일을 방지하기 위한 문제이기도 하다.

사실 그런 문제 치고는 조금 어렵지 않나 생각했는데, 다행히 거의 모두가 해결했다.

 

C. 바벨탑의 저주

예전부터 문자열 알고리즘을 사용하는 문제를 만들어보고 싶었다.

물론 너무 스탠다드한 문제는 대회에선 지양해야 하니 쉽지 않았다.

 

지하철에서 심심해서 트리에 관한 문제를 읽던 중, 문득 서브트리를 적당히 뒤집는 상상을 했다.

뒤집어도 대칭인지 ett + manacher's로 판별할 수 있겠다는 생각이 들어 문제로 만들게 되었다.

 

처음엔 위 링크의 문제처럼 이진트리가 주어지는 문제로 기획하고 풀이도 이진트리에서 검증했다.

나중에 자식이 여러 개인 트리여도 똑같이 풀리지 않을까??? 하고 그렇게 했다가 ANZ님이 반례를 주셔서 겨우 수정하는 일이 있었다. 입력 조건이 조금이라도 바뀌었다면 백 번 천 번 다시 검증해야 한다....

 

나름 참신한 풀이라고 생각했는데 이런 자료가 있다는 걸 나중에 알았다. 세상은 넓고 천재는 많다.

 

D. 새벽의 탐정 게임

tox box

위 슈퍼마리오 64에 등장하는 적을 소재로 한 문제이다.

원래 지금과는 많이 다른 문제였는데, 마음에 안 드는 무작위화 풀이가 있었다.

궁금하면 아래 접은 글을 열어보자.

더보기

다섯 면은 페인트가 발라져 있고, 한 면은 그렇지 않은 큐브가 있다.

페인트가 발라진 면이 바닥을 향하면 그 칸에는 페인트가 칠해진다.

N행 M열의 격자가 주어질 때, 이 큐브를 아무리 굴려도 페인트를 바르지 못하는 칸이 생기는 위치를 출력하라.

 

풀이 : 한 10칸 정도 무작위로 골라서 시뮬레이션하면 된다 (ㅋㅋ)

마침 일반적인 그래프 탐색 문제가 없기도 해서 ANZ님 조언에 따라 다차원 visited를 활용하는 최단거리 문제로 변경되었다.

돌이켜보면 정말 잘 한 선택이었다. 대회 중 많은 분들이 해결해 주셨고, 수상권 입성을 가르는 문제가 되었다.

 

마지막으로, 멋진 검수진 분들이 성심성의껏 검수해주신 덕분에 양질의 지문과 데이터를 완성할 수 있었다.

 

디자인

솔브드 뱃지 (시안)
솔브드 프로필 배경

shiftpsh님께 솔브드 배경 및 뱃지를 기념으로 줄 수 있는지 여쭈어 보았는데, 흔쾌히 허락해주시고 절차도 친절히 설명해주셔서 정말 감사했다.

 

현장대회 참여자 및 오픈 콘테스트에서 한 문제 이상 해결한 분들 모두에게 지급이 완료되었다.

 

풍선 대신 지급한 스티커

원래는 ICPC처럼 헬륨 풍선을 주려고 했는데, 여러 가지 이유로 취소되고 대신 스티커를 주게 되었다.

주문제작은 처음이라 많이 헤매었는데 어찌저찌 잘 해결되었다.

 

물론 위 고양이 스티커는 업체 선정용으로 한 장만 출력한 것이고, ruz님이 데려가셨다. ㅎㅎ

 

수상자 패널

원래 업체에서 주문하기로 했는데 업체에서 제시한 시안에 운영진 모두가 회의적이었어서 취소했다.

결국 또 내가 급하게 디자인했고, 운영진 분들이 인쇄소와 문구점 등을 뛰어다니며 수고해주신 덕분에 예쁜 수제작 패널이 탄생했다.

 

 

대회 당일 및 오픈 컨테스트

대회 운영의 꽃은 역시 대회 모니터링이 아닐까 싶다.

 

우선 다들 너무 열심히 풀어주셔서 굉장히 감사했다.

35번의 도전 끝에 문제를 맞춘 참가자, 빠르게 구현하기 어려운 문제를 일찍 해결한 참가자 등 재미있는 관전 포인트도 많았다.

 

문제가 그렇게 쉽지는 않았음에도 다들 정말 잘 풀어주셨고, 예상을 깬 수상자들이 탄생하기도 했다.

교내 커뮤니티의 후기 및 반응도 좋은 것 같아 즐거웠다.

 

 

오픈 컨테스트는 고인물 분들의 스피드런을 구경하는 게 재미있었다.

본 대회에선 공개하지 않은 두 문제가 추가되었는데, 나는 푸는 데 며칠씩 걸린 문제를 대회시간 안에 뚝딱하시는 모습이 정말 감탄스러웠다.

 

 

마치며...

내 대학 생활의 하이라이트이자, 준비하느라 고생도 많이 한 2022 IUPC 운영을 결국 성황리에 마쳤다.

오프라인 대회인 만큼 사람들도 많이 만나고 놀 수 있어 정말 즐거웠다. ㅎㅎ

 

앞으로도 IUPC가 인하대학교의 오랜 전통으로 이어졌으면 하는 소망을 밝히며 이 글을 마친다.

댓글