Day 168. 제1회 AGCU(와쿠)컵 출제 후기

2023. 4. 23. 22:48Notice/후기

문제를 좋은 방법으로 풀어내는 것은 지난한 일이다. 하지만 그것보다 더 어려운 일은 좋은 문제를 만들어내는 일이다. 더더욱 어려운 것은, 쉬우면서도 좋은 문제를 만들어내는 것.

이번 대회에 문제 출제를 하게 되며 느낀 것이 바로 그것이다. 내가 만든 문제와 다른 문제 퀄리티를 비교해 보니 차이가 확실히 있다. 이건 반복되는 출제 경험이 만들어 낸, 이른바 짬에서 나오는 바이브리라.

소기의 목표 달성!

 

movegreen님이 뉴비들도 쉽게 참가하여 성취감을 느낄 수 있는 대회를 개최하고 싶다는 말을 꽤 오래 전에 처음 하신 것으로 기억한다. 해가 바뀌기 전이었으니 내가 코딩 자체를 시작한 지 두 달밖에 안 된 타이밍이었다.

나는 어느 정도 발을 담가 본 분야에서 언제나 내 결과물을 만인 앞에 내보이고 싶은 현시욕이 발현된다. 고등학생 때 취미삼아 글을 끼적일 때도 그래서 공모전이나 신춘문예에 일단 글을 투고하였고(당연히 당선작은 없었다), 각종 수학문제 또한 만들어서 자작문제를 투고한 적도 있었다(당연히 사설모고 등에 쓰인 적은 없었다).

그 현시욕은 쌩뉴비였던 그 시절에도 가감없이 발휘되어 언젠가 열게 되면 부족한 능력이나마 최선을 다하겠다고 했고, 실제로 대회 운영용 디스코드 서버가 만들어졌을 때 황송하게도 가장 먼저 출제자로 확정되었다.

랜선 너머로 큰절을 서른 여섯 번 보냈습니다. (과장)

이 대회 기조는 다음과 같다. 출제자 모집 문서에 있는 걸 긁어왔다.

하나. 명확하고 간단한 지문과 깔끔한 풀이를 지항한다.

하나. 절대 어렵지 않은 문제로 셋을 만들어 초보 PS러들이 대회를 어려워하지 않고 PS를 즐길 수 있기를 원한다.

하나. 출제 기회가 있는 신인 출제자에게 기회를 드리는 것을 원한다.

하나. 이러한 PS의 선순환이 계속 이뤄지기를 희망한다.

 

출제 과정은 순조로웠다. 나에게만 순조롭지 않았을 뿐.

우선 Validator나 스페셜 저지를 자력으로 짤 수가 없었다. 다른 문제용으로 지정된 Validator를 적당히 수정해서 사용했더니 수많은 에러가 터졌더라. C++ 문법을 모르는 상태에서 출제진으로 들어갔으니, 벼락치기에는 한계가 있었다. 고이신 타 출제진 및 검수진 분이 Validator를 쓱싹 만들어 주셨다. 아마 대회 개최 때나 되어야 감이라도 잡힐 것이다. 스페셜 저지는 폴리곤의 그것을 복붙할 수 밖에 없었다.

또한 출제 시점에서 내가 창고에 넣어 놓은 문제가 적지 않았으나 이 문제 중 단 하나도 AGCU컵에 쓰일 일이 없었다. 난이도가 하나같이 괴이하기 짝이 없었기 때문이다. 저걸 쓸 때 참고한 게 해당 파트만 커버하는 마이너한 수학 전공 도서인 시점에서 출제 불가 낙인이 찍힌 것이나 다름없었다.

이 세 문제, 조만간 출제할 예정이다. 일단 2000솔부터 찍고 나서...

거기에 더불어 당초 출제하려고 했던 순수 수학 문제 하나가 누가 봐도 골드 판정을 받아버려서 대회 기조에 맞지 않게 되었다.

나는 수학 문제를 과소평가하는 매우 나쁜 버릇이 있고, 이게 기여 뿐만 아니라 출제에도 영향을 기치게 될 것이라는 예상은 이미 했으나 이렇게 치명적으로 다가올 줄은 몰랐다. 내가 출제하고 싶었던 문제의 성격과 아주 정확하게 일치한 문제라 아깝기 그지없다. 너프한 문제를 내자니 문제의 의의에 맞지 않아서 주머니로 귀환시키기로 하였다.

이것도 2000솔하면 확정적으로 출제할 예정이다.

 

인당 두 문제씩 출제해서 셋을 만들어야 했는데, 출제하려던 문제가 하나 엎어지고 나니 창의력이 바닥나 버렸다. 저 엎어진 문제에 모든 머리를 쏟아부은 터라 아이디어가 생각나지 않았고, 상품 아이디어에서 은화를 얻어서 적절한 양론 문제인 합금 주화를 만들었다.

그리고 이것도 난이도가 대회 취지와 맞지 않았다. 젠장. 다른 문제들도 거의 실버에 포진한 상황에서 사전지식만으로 합금 주화 문제가 실버 상위에 랭크인되는 사태가 발생했다. 내가 화학공학을 전공하고 있어서 단위변환이나 양론적인 계산은 과장 많이 섞어서 눈 감고도 할 수 있을 정도로 매우 쉽게 느껴졌지만 비전공자 눈과는 현저한 차이를 느끼는 것을 감안하지 못했다. 감안한다고 했는데 이게 그렇게까지 어려워 보일 거라고 생각하지 못한 게 더 적합한 말이겠다.

목표가 B1~B2였다. 당연히, 대폭 너프가 필요했다.

몰 질량 등의 용어가 생소하다는 것을 감안해서 문제에 등장하는 용어를 밀도 하나로 통일했다. 그제서야 목표와 비슷하게 난이도가 매겨졌다. 그래도 브론즈로 낸다고 했는데 실버 판정을 받는 것을 면하지는 못하였다. 내 목표는 B2 하나 B1 하나였는데 어째 검수를 다 마친 4월 8일 시점에는 두 문제가 나란히 S5 판정을 받았다. 실제 PS러들이 대회장에서 마주칠 때 어떻게 체감될지 모르겠다. 언제나, 답을 전부 알고 있는 이 입장에서는 체감 난이도가 수직 하락한다.

+) 지금은 합금 주화가 B1으로 매겨졌다. 목표에 맞는 것 같아서 그나마 다행이다.

 

농담으로 상품 진짜 은화 주는 거 어때요? 하는 발언이 실제 은화가 적당히 싸다(5만원 가량)는 사실과 맞물려서 실제 상품이 된 것도 인상깊었다. 일종의 컨셉을 지키는 것 같아서. 그 컨셉을 잘 지킨 문제가 앞서 말했듯이 E번, 합금 주화 문제이다.

나머지 한 문제는 문자열 문제가 되면 좋을 것 같아서 피자를 씹으면서 만들었다. 그렇다. F번 문제 콰트로치즈피자이다.두 문제에 대한 해설은 나중에 다른 게시글로 올리기로 하고, F번 문제에 대한 출제 비하인드를 조금 풀어 보자면... 일단 세팅 초기에는 저게 A 아니면 B로 갈 거라고 생각했다. 예상 난이도를 Bronze IV ~ Bronze III로 매겼기 때문이다. 참가자 입장에서는 얼마나 어처구니가 없을까.

topping1 topping2 topping3 ... toppingN

그리고 토핑 수를 명시하지 않고 입력을 이런 형식으로 받는 게 초안이었다. 나는 C/C++을 만져 본 적이 없고, 저런 식으로 입력을 받는다면 C/C++ 사용자가 †승천† 한다는 사실을 전혀 모르고 있었다. Python에서는 이런 입력을 받는 것에 아무런 문제가 없어서 신경쓰지 못했지다.

검수가 진행되는 과정에서 5글자 이하의 토핑, 치즈치즈 토핑, 기타 상식적인 WA 지적이 많았다. 내가 처음에 문제 세팅했을 때 데이터를 매우 헐겁게 짰다는 말이 되겠다. 그런 지적이 들어올 때마다 내 멍청함을 체감했다. 만일 다음 기회가 돌아온다면 조금 더 꼼꼼해질 수 있기를...

 

숙원사업이던 출제를 성공적으로 마쳤다. 내 사고방식에 난 구멍을 메우는 법은 아직 덜 체득했지만, 어찌 첫 술에 배부르랴. 대회가 굴러가는 방식을 알게 된 것, 그리고 막연한 두려움을 내려놓은 것. 마지막으로 대회 취지에 어긋나지 않은 채 대회가 삐걱이지 않고 잘 마무리된 것으로 만족할 줄 아는 사람이다.

그럼, AGCU AGCU!!

728x90