약 두달간 준비해왔던 SW-IT Constest 대회가 끝났습니다. 저는 이번 대회에 8문제를 출제했었는데 문제들이 만들어진 계기와 tmi 몇개 끄적여보려 합니다. 약간의 문제 풀이 스포가 있으니 참고해주세요.
타슈
문제를 만들때 실버~골드까진 있었는데 브론즈가 적어서 추가했던 문제입니다. 원래 이름은 최애의 아이였고 범위를 크게 잡아서 반복문을 사용하는 풀이가 불가능했지만 나중에 지문도 싹다 고치고 범위도 엄청나게 줄어들었습니다.
최애의 아이였을 때 지문은 그렇게 좋지 않았기 때문에 대전시와도 관련있는 지금의 지문이 훨 나은 것 같습니다.
강의실 예약 시스템
원래 만들어놨던 문제 중 관람차라는 문제가 있었는데, 지문이 정말 난해했었기에 그냥 문제를 살짝 너프시키고 지금과 같은 문제로 바꾸었습니다. 원본은 풀이가 똑같긴 하지만 시간을 특정값으로 나눈 나머지를 관람차의 번호로 사용했다는 것에 차이가 있습니다.
폴리곤에서는 통과하던 풀이들이 스택에 옮겨지는 과정에서 빠른 입출력을 사용하지 않으면 시간 초과가 나버리는 걸 발견했지만 오히려 비전공자들이 빠른 입출력을 써보는 기회가 될 수 있겠다 싶어서 노트에 빠른 입출력 설명을 추가하고 그대로 냈습니다. 그럼에도 불구하고 교내대회에서 수많은 시간초과를 만들어낸 문제기도 합니다...
치즈버거 만들기 2
원래는 ANA 문자열이라는 이름이고 풀이는 같지만 스페셜 저지가 없던 문제였었지만, 문제가 치즈버거 만들기와 비슷한 느낌이였기에 아예 치즈버거 만들기 2로 이름을 바꾸고 추가로 스페셜 저지를 붙이게 되었습니다. 처음 만들었을 때는 재밌는 문제처럼 보였는데 지금보니까 그냥 무난한 실버 하위 문제인 것 같네요.
순열 선물하기
사실 이 문제는 질서와 혼돈(https://www.acmicpc.net/problem/18348)을 풀다가 나온 문제입니다. 인접한 두 수를 합쳤을 때 소수가 되면 안되는 것을 지금까지의 모든 수를 합쳤을 때 소수가 안되는 거로 착각하고 풀었다가 1틀 했는데 착각했던 풀이가 꽤 재밌게 나와서 그냥 스위트콘에 내버렸습니다(?).
행사 준비
효율적으로 소사기(https://www.acmicpc.net/problem/5896)와 비슷한 정렬을 요구하는 그리디들이 플레 3 이상에 있길래 그럼 그냥 정렬하는 거는 티어가 어느정도 될까라는 생각이 들어서 만들었던 문제입니다. 내부 출제진분들 사이에서는 개인차가 많이 갈렸던 문제인데 정작 교내대회에서도 다들 잘 풀어주셨던 문제고, 실제로 난이도도 실버 2로 원래 생각했던 난이도인 골드 4보다는 훨씬 낮습니다.
옥수수밭
원래 문제는 초콜릿이였고 풀이에는 차이가 없지만 제가 코딩을 하는 도중에 초콜릿을 한 조각씩 떼어내면서 먹는 지문이였습니다. 이건 제가 제출한 코드에서(https://www.acmicpc.net/source/66770490) 확인해 보실 수 있습니다.
막 만들었을 때는 그냥 bfs를 우선순위큐로 하는 교육적인 문제 정도로만 생각했지만, 처음에 가장자리에 놓여있는 옥수수들을 우선순위큐에 넣어주는 과정에서 방문체크 실수가 엄청 발생해버리는 문제가 되어버렸네요. 교내대회에서도 한 분을 제외하면 전부 1틀 이상씩은 했던 문제입니다.
차원문
순열 사이클 분할로 문제 하나 만들어보고 싶어서 30분동안 머리 싸매다가 만들어진 문제입니다. 짧은 시간에 만들어진 문제치고는 잘 만들어진 것 같네요. 문제를 처음에 보여줬을 때 내부 검수진중 한 분이 10분만에 푸시고는 이거 골드 4 정도다 했고, 저도 골드4까지는 아니지만 골드 2~3 정도로 생각하고 있었지만 플레 5가 되어버린 문제입니다.
이에 대해서 hhs2003님이 저보고 골드 중상위 문제 만들었다고 큰소리 뻥뻥 치더니 플레 문제가 되어버린걸 해명하라고 하시는데 그전에 이 문제 골드 4라고 하신거 해명해주셨으면 합니다.
비밀의 화원
원래 지문에는 한별이의 친구 히나가 주인공으로 등장했었습니다. 그러다가 제목을 비밀의 화원으로 바꾸면서 소설의 주인공인 메리로 이름이 바뀌고, 이후에 지문에 ANA 동아리원분들의 이름을 넣는 과정에서 한번 더 바뀐 문제입니다.
원래는 대각선으로도 꽃이 피워졌었지만 상하좌우로만 꽃을 피우는게 난이도도 높아지고 더 예쁘게(?) 꽃을 피우는 것 같아 지금의 문제로 바꾸게 되었습니다. 이래도 풀이에 큰 변화는 없었습니다.
문제 자체가 장애물만 없으면 완전 토마토랑 같은 문제라 교내대회, 오픈콘에서 토마토를 푸는 코드가 여러개 제출되었습니다. 아예 배열 이름이 tomato이거나 주석에 토마토가 익는 과정이라고 적혀있는 코드들이 많이 나왔었네요...
여기까지가 제가 출제한 문제들의 TMI들입니다.
대회가 시작되기 3일전에는 문제가 너무 쉬운건 아닌가하면서 정말 걱정 많이했는데, 오히려 초반부는 쉬워서 많은 분들이 오픈콘에 참여해주시고, 뒤에 있는 문제들은 어려워서 확실히 아레나 SS 정도의 대회가 된 것 같아 만족스럽습니다.
대회를 운영하는데 도움을 주신 운영진분들과 검수진 분들에서 감사의 인사를 전합니다.