2024 하반기 전남대학교 PIMM 알고리즘 파티 후기
서론
솔브닥 스트릭 600일을 마지막으로 매일매일 문제를 풀겠다 라는 결심을 마무리 하게 되었다. 하지만, 그렇다고 해서 알고리즘에 대한 마음이 떠난 것은 아니다. 더 시간 투자하고 싶은 마음은 많지만 생각보다 쉬운 일이 아닌 것 같기도 하다. 다른 능력을 발전시키는 것 역시 중요하기 때문이다. 아무튼 졸업은 했지만 동아리 후배들과 함께 이번 학기에도 역시 문제를 출제하게 되었다.
지난 대회에 비해 대회 준비에 많은 시간을 투자하지 못했다. 이런거 저런거 하다 보니 다른 친구들이 낸 대회의 상위 문제들을 깊이 있게 보지 못하였다. 2번의 대회를 개최해본 우리 팀은 그래도 노하우가 조금 생겼는지 어떤게 필요한지 정확히 인지하고 시간내에 모든 문제를 세팅 할 수 있었다. 원래 대회 개최 목표로 했던 날짜가 추석에 겹치게 되어 그 다음주로 미루게 되었고 지문을 더 다듬을 수 있는 시간을 가졌다.
문제 후기
내가 세팅한 문제는 A번, B번 이었다. 원래는 B번은 생각에 없었는데, 현재의 E, F, G번의 초안이 나오자 이렇게 문제를 내면 우리 대회는 망한다 라는 생각이 들어서 실버5~4 정도 되는 문제를 구상하고 있었다. 하지만, 이 문제가 어떻게 변하게 됐는지는 조금 뒤에 살펴보자.
팰린드롬에 관련된 문제이다. 종현이 팰린드롬을 보다 신기한 현상을 발견하게 되었다는데 그건 사실 내 이야기이다. 내가 팰린드롬을 보다가 반으로 잘라서 똑같은 팰린드롬에 붙이면 팰린드롬이 된다는 사실을 발견하였다. 이를 조합론을 이용해서 문제화 하면 괜찮을 것 같다는 생각이 들어서 구성하게 되었다. 기존에 N이 100만 정도 생각 하고 있었는데 문자열이라는 사실을 깜빡하고 데이터만 생성하는데 많은 시간을 들이다 어려운 아이디어가 필요한 문제도 아니니 N을 적당히 줄이고 A번 문제로 보내는 것을 타협했다. 결과론적인 이야기지만 이 문제가 gpt들을 아주 잘 잡았다. N^2의 팰린드롬을 직접 만들어서 비교하는 시뮬레이션의 경우에 시간초과가 나게 하였기 때문이다.
문제를 출제하는데 있어서 문제에 대한 아이디어를 내고 스토리화 하는게 정석 이라고 생각한다. 하지만 이번에는 조금 다르게 접근하였다. PIMM파티의 하나의 이스터에그 "근성은 나무에 관심이 많다." 1, 2가 깨질 위기에 처한 것이다. 따라서 근성과 나무에 관련된 스토리를 생각하며 처음에 구상한 것은 현재 문제 처럼 나무에 버린 쓰레기를 줍지만 단 1회 쓰레기를 줍는 것으로 단순 구현 문제 였다. 하지만, 너무 웰노운에 비슷한 문제가 많아 반려 되었고 이를 개선하기 위해 끙끙 앓다가 jjkmk1013이 쿼리 형식으로 주어지는 아이디어를 내서 현재의 문제가 탄생하게 되었고 많은 사람들을 절망시킨 어려운 문제가 되어버린 것 같다. 기존에 생각한 풀이는 두개의 스택을 사용한 풀이었는데, 대부분의 사람들이 set이나 priority_queue로 처리해줬던 것 같다.
대회 후기
이번 대회에는 지난 대회에 비해 2문제가 적었는데, 이것이 우리가 열심히 안했다가 아니다. 준비하던 문제는 현재의 두배인데 버려진 문제가 절반이기 때문이다. beline0124이 아쉽게 본인의 문제를 개선시키지 못해서 출제를 못했지만 이번에도 운영을 잘 해주었고 큰 탈없이 끝났다. E, F, G에 괴랄한 문제를 낸 3명은 무슨 생각을 하는지 잘 모르겠다. 링크하단에 볼 수 있는 검수진 분들 이전 대회, 이전전 대회에서 부터 항상 감사하다. 그리고 우리의 도움 요청에 가까운 원군 invrtd_h가 C번을 출제해 주었다. 이 역시 난이도가... F번 문제도 내가 알기로는 처음에는 골드급 아이디어의 문제였는데 검수진 분의 도움으로 확장시켜가며 플레~다이아 급의 문제가 되어버려 대회에서 노솔브로 남아버린 문제까 되어버린 것 같다.
개인 후기
첫 대회는 우리들끼리 출제하기 전에, 대회 진행이나 운영을 알기 위해 다른 대회들에 출제나 검수를 지원하며 노하우를 배워왔고 심지어 실제 출제 할때는 검수진 분들께 정말 많은 도움을 받아가며 대회를 열었다.
두 번째 대회는 문제의 정합성에 있어서, 지문에 있어서, 세밀한 검수를 받으며 우리의 부족함을 느낄 수 있었다.
세 번째 대회는 대회 운영에 있어서 한껏 성숙해진 느낌을 받았다.
별개로 chatgpt의 발전에 있어서 CP(Competitive Programming)의 영역에 많이 침범하고 있다. 단순한 구현 문제들은 인간이 그 속도를 이기기 힘들며 얻어걸리긴 했지만 A번 B번 모두 시간복잡도를 계산해야하는 문제이기에 단순히 파할 수 없었다.