<

CP/대회 후기

SCPC 2023 본선 대회 후기

leedongbin 2023. 10. 7. 14:06

120/1300점으로 마무리.. 아주 처참한 결과를 받고 말았다...

이 글을 쓰면 핑계만 늘어놓을 것 같아서 글을 쓸까 말까 고민을 많이 하다가, '그래도 기록은 해야지...'라는 마음으로 뒤늦게 후기를 써본다. 어차피 푼 문제가 하나뿐이라, 준비 과정이나 시상식 위주로 글을 쓸 것이다.


준비 과정

본선 진출이 확정되고 나서, SCPC 본선 수상 경험이 있는 학교 선배에게 사고력 향상에 도움이 되고 응용 가능성이 높은 문제들을 추천받아 연습했다. 난이도 순으로 간단히 정렬하면 대충 이런 문제들을 풀었다.

평소 다른 알고리즘 대회에 참여할 때도 평균적으로 Platinum 4정도 난이도까지는 잘 푸는 편이었고, 마지막 두 문제는 새로운 테크닉을 배우는 과정이었기 때문에 마음 부담 없이 풀고 있었다.

그런데... 저 빨간색으로 칠한 네 문제가 죽어도 안 풀리는 것이었다. 풀 땐 몰랐는데 지금 와서 보니까 전부 다 DP 문제다. 등하교 시간도 쪼개면서 3일을 고민했는데, 자력으로 푼 문제는 Panokseon 뿐이었다. 

스스로도 DP에 약하다는 것을 알고는 있었지만, 그래도 이번에 어느 정도 연습했으니 괜찮겠다고 생각했다. 하지만 이것은 착각이었다는 걸 대회 때 뼈저리게 느끼게 되었다...

본선 대회는 VDI(Virtual Desktop Infrastructure)상에서 진행되기 때문에 각자의 PC 환경을 미리 세팅해야 했는데, 세팅이 미숙해서 그런지 평소에 사용하던 개발툴을 사용하지 못하게 되었다.

게다가 시험 하루 전날에 갑자기 선풍기의 먼지가 눈에 밟혀 선풍기 날개를 닦다가, 날개를 부숴버렸다.(....??) 그래서 어쩔 수 없이 선풍기 없이 시험을 보게 되었다. 


본선 시작

우여곡절 끝에 대회가 시작되었고, 나는 빠르게 1번 문제를 풀었다. 평소에 게임이론 문제를 좋아했기 때문에 바로 홀짝성으로 접근할 수 있었고, 어떤 행동을 하더라도 홀짝성이 바뀐다는 것을 빠르게 캐치해서 12분에 만점을 받았다.

이후 4번이 가장 많이 풀려서 문제를 보는데, 정말 아무리 봐도 DP 문제인 건 알겠는데 안 풀리는 것이다. 이때부터 마음이 초조해지면서, 거의 풀리지도 않은 다른 문제들을 괜히 들락날락거렸다. 그러다가 4번 문제를 절반 이상의 참가자가 푼 시점에서 이 문제를 만점을 못 받으면 다른 문제들의 서브태스크를 긁어도 아무 의미가 없겠다고 판단했고, 4번 문제에 집중하기로 했다.

그런데 문제가 생겼다. 본선 날짜가 9/16일이었는데, 정말 너무 더웠다. SCPC 사무국에서 보내준 얇은 티셔츠를 입고 시험을 쳤는데도, 땀이 온몸을 타고 줄줄 흐를 정도로 더웠다. 선풍기를 부숴버린 내가 너무도 미운 순간이었다. 그래서 집중력도 많이 약해졌고, 아무런 소득 없이 시간만 흘러갔다.

시간도 많이 지났고 내년을 위해 연습이나 해야겠다는 생각에, 대회 종료 1시간을 앞둔 시각에 Output만 보고 DP 점화식의 규칙이라도 찾아보기로 마음먹었다. 간단히 서브태스크를 긁어 데이터를 검증하고, 작은 범위의 Output을 보며 규칙을 찾는 중에, 대회 종료 약 15분 전에 규칙을 발견했다.(!!) 마음을 다잡고 코딩에 집중했지만, 15분이라는 시간은 구현하는 데만 해도 부족한 시간이었고, 결국 답을 적어내지 못하고 대회가 종료되었다.

실제로 대회 중에 제출 자체를 얼마 안 했었다...


후기

대회가 끝나고 시상식 초대장이 날아왔다. 시상식은 메타버스 환경에서 진행됐는데, 내가 들어가서 뭐하나 싶기도 했지만 어떤 분들이 수상하실지 궁금해서 참여했다. 운영진분들의 인사와 간략한 문제 풀이가 이어졌고, 이벤트가 열렸다.

...무려 나를 위한 이벤트였다. 수상자를 "제외한" 시상식 참가자에게 치킨을 준다는 것이다! 내 기억상 약 65명이 참가했고, 38명이 수상했으니 27명 중 20명이 치킨을 받았다. 이마저도 못 받는다면 너무 슬플 것 같았다.

휴~

그래도 다행히 당첨되었고, 며칠 전에 기프티콘을 받았다.ㅎㅎ

마지막에 단체 사진을 찍었는데, 그땐 캡처를 못했고 이후 자유롭게 포토타임을 주셔서 한 장 찍고 나왔다.(혼자 뒤돌아 있는 게 나다.)

수상자 명단까지 발표되고 나서 정말 많은 생각이 들었다. 크게 세 가지 정도가 있는데,

  1. 나는 그동안 알고리즘을 공부라고 생각하지 않고 취미로 해왔었다. 그런데 요즘 들어 PS는 재능의 영역인가 하는 생각이 가끔 든다. 당연히 학력이 전부가 아니라는 것은 잘 알고 있지만, 올해 수상자도 역시 SKY, KAIST 소속인 분들이 압도적으로 많았던 것은 사실이다. 이제는 취업을 걱정해야 할 3학년이라 진로를 확실히 정해야 하는데, 다른 알고리즘 고수분들은 어떻게 생각하시는지, 이런 생각이 들 때 어떻게 대처하시는지 궁금하다.
  2. 1, 2차 예선에서 어려운 알고리즘들이 많이 등장했고, 본선에서는 라이브러리를 참고할 수 없기 때문에 대회 준비 막바지에 LCA, Segment Tree, BM 등의 구현 방법을 외우는 데 집중했다. 하지만 결국 DP에서 막히고 말았다. 내실을 다지지 않으면 어려운 알고리즘을 사용할 기회조차 없으니, 공부 순서를 잘 정해야 한다.
  3. 결과론적인 말이지만, 이렇게 될 줄 알고 있었다면 다른 어려운 문제들의 서브태스크 긁는 연습을 해보는 것이 경험적으로는 더 도움이 됐을 것 같다. 그리고 스코어보드에 연연하지 말고, 내 갈 길을 갔다면 규칙 찾기를 더 빨리 시도해보지 않았을까 하는 아쉬움도 남는다. 대회 중에 멘탈 관리도 정말 중요하다고 느꼈다.

SCPC는 이번이 처음이었기에 대회 환경 세팅과 연습 과정, 대회 중의 전략 등이 많이 미숙했던 것 같다. 내년엔 피드백을 바탕으로 빈틈 없이 준비해야겠다.

+) 수상하신 분들 모두 축하드립니다!!