2부: https://leo630.tistory.com/244
예선 후기: https://leo630.tistory.com/240
스코어보드: http://static.icpckorea.net/2024/regional/scoreboard/
셋: https://www.acmicpc.net/category/detail/4348
BGM: https://youtu.be/Y7C8qIpo7Dg?si=JsFatEFjceH92ksa
서론
개인으로는 4번째, 대면으로는 3번째, 그리고 제발 마지막이길 희망하는.. ICPC 서울 리저널 본선에 참가했습니다. 팀 소개나 목표 등은 예선 후기를 참고해 주세요. 지난 2년간은 대회를 별일 없이 잘 마무리했기 때문에 신나서 후기를 빨리 작성할 수 있었는데, 이번에는 우여곡절이 많아서 이제야 작성하게 되었습니다. 저희도 이럴 줄 몰랐는데.. 적당히 긴 이야기가 될 예정이니 재밌게 봐주시면 감사하겠습니다.
대회 전
2024 서울 리저널은 최근 몇 년의 대회들과는 다른 양상을 띌 것으로 예측되었습니다. 2024년 한 해에만 세 개의 WF가 열려버린 바람에 서울대학교 / 카이스트의 초강팀들, 그리고 숭실대학교의 핵심 인원들이 모두 횟수 제한 등의 이유로 ICPC를 떠났습니다. 동시에 그 빈자리를 서울대학교와 카이스트의 실력 좋은 23/24학번들과 다른 여러 대학들에서 각잡고 꾸린 팀들이 채워 압도적인 강팀은 없어도 전반적으로 상향평준화된 모양새가 되었습니다.
개인적으로도 이번 서울 리저널 대회에 기대가 컸기 때문에 다른 참가팀들에 대해 미리 조금 알아보았습니다. 그 결과, 연세대 EndGame, 고려대 DolAndDool, 그리고 저희 팀이 국내 대학 3등 자리를 두고 경쟁할 것 같다는 나름의 결론을 내렸습니다. 이 팀들은 실력도 실력이지만 평균적으로 4년 이상씩 학교에 다니면서 호흡을 맞췄기 때문에 생각보다도 더 강할 것으로 판단했습니다. 이는 동시에 남은 기회가 얼마 없다는 뜻이기도 해서 각오가 더욱 남다를 것으로 생각되었습니다. 하지만 이상의 3팀만큼이나 강하고 합을 맞춘 서강대 AllTimeLegend & RedShift 팀과 한양대 / UNIST / 경희대 등의 다크호스들, 카이스트 / 해외 리저널의 적지 않은 강팀들, 그리고 무엇보다 대회장에만 오면 항상 무서운 모습을 보이는데다가 팀 수 제한 폐지까지 등에 업은 서울대학교의 수많은 팀들로 인해 리저널 수상 및 챔피언십 티켓 획득은 이전 연도들보다도 더욱 쉽지 않아 보였습니다.
이러한 이유, 그리고 결정적으로 올해 ICPC가 정말 마지막 기회였기 때문에 해외 리저널 신청을 본선 직전까지도 굉장히 고민했습니다. 그러나 팀 연습을 몇 번 해 보았을 때 우여곡절이 있긴 했어도 결과는 나쁘지 않았고, 저희 팀 역시 실력에 대해서는 나름대로 자신이 있었습니다. 특히나 WF 경험이 있는 멤버 구성을 거의 유지한 채로 대회에 나오는 유일한 팀 (줄여서 월파팀) 이었기 때문에 좋은 성과를 거두기에는 이번이 적기라고 생각했습니다.
그렇게 해외 리저널에는 우선 가지 않는 것으로 결론내렸습니다. 예비소집 당일 새벽부터 포항에서 힘들게 출발했던 이전 대회들과는 다르게 이제는 연차도 쌓이고 해서 전날 미리 상경한 후 킨텍스에서 모였습니다. 예비소집과 대회 당일에는 아는 팀들 / 커뮤니티 상으로만 알던 분들을 조금 만나서 인사를 나눴던 것 같습니다. 이상하리만큼 긴장감이나 불안한 구석이 없었는데, 되돌아보면 그러지 말았어야 할 것 같네요..
대회 중
잘 기억은 나지 않는데, kwoncycle이 앞 / slah007이 가운데 / 제가 뒤를 보고 시작했습니다.
~0:29 (2솔브)
각자 문제를 읽다가 A가 풀린 것을 보고 kwoncycle이 코딩에 들어갔습니다. 쉬운 문제인데 뭔가 말렸는지 시간을 좀 쓴 후 AC를 받았습니다. 이후 slah007이 B를 빠르게 짜서 맞았습니다. 조금 느리긴 해도 페널티 없이 맞아서 나쁘지 않았던 상황이었던 것 같습니다.
~0:45 (3솔브)
그 동안 저는 L을 읽었습니다. 어렵지 않은 것 같아서 정리하고 있는데 kwoncycle이 나오길래 넘기고 J로 향했습니다. kwoncycle이 적당히 짜서 맞긴 했는데, 제가 짜도 되는 쉬운 문제를 넘긴 것이 이 날의 첫 번째 패착이었다고 생각합니다.
~1:19 (4솔브)
J는 이분 탐색을 적절히 쓰면 되는 문제였는데, 스코어보드에 틀린 팀들이 꽤 있어서 제출을 좀 망설였습니다. 이런 경우에 제출해서 맞은 기억이 잘 없는데, 아니나 다를까 틀렸습니다. 1WA를 더 적립한 후에야 slah007과 풀이를 개선해 AC를 받을 수 있었습니다.
시간과 정신의 방
이 시점에서 대략 수상권인 10등대를 유지하고 있었습니다. 이후 각자 잡은 문제는 다음과 같습니다. 기본적으로 모든 문제를 최소 한 사람이 읽긴 했는데, 솔브수와 잘하는 분야를 기준으로 각자 하나씩을 잡았습니다.
slah007: C (자료구조) / kwoncycle: F (Constructive) / leo020630: H (트리)
스코어보드에서 유일하게 풀린 문제는 F였지만, 풀이가 마땅히 나오지 않았습니다. 먼저 slah007이 머지 소트 트리를 사용하는 C 풀이를 제출해 TLE를 받았습니다. 이후 kwoncycle이 F의 재귀 풀이를 발견했고 slah007과 검증까지 마쳐 코딩에 들어갔지만 1시간 정도 후에 근본적으로 틀렸다는 사실을 깨달았습니다. 저는 컴퓨터가 빌 때마다 H 구현을 시도했지만 WA와 TLE를 번갈아 받았습니다.
그렇게 2시간동안 3문제의 코드가 나왔지만 맞은 문제가 없었습니다. 이때쯤 정말 큰일났다는 사실을 직감했습니다. H를 디버깅하는 것보다 헬프를 가는 것이 낫다고 판단했고, F는 제가 도와줄 수 있는 영역이 아니었기에 C를 돕기로 했습니다. 다행히 제가 상수가 더 적은 DP 풀이를 발견했고 빠르게 구현에 들어갔습니다. 안타깝게도 결과는 TLE였습니다. 벡터를 배열로 바꿨지만 결과는 같았고, 이후 로컬 스트레스를 포함해 set을 1024진법으로 구현하는 이상한 짓을 1시간 정도 한 후에야 가까스로 AC를 받았습니다. FastIO나 다른 상수 최적화 방법을 더 빨리 떠올리지 못한 것은 아직도 아쉽습니다.
4:12 (5솔브) ~ 4:50 (6솔브)
놀랍게도 이미 프리즈 이후였습니다. 후기를 작성하며 찾아본 결과 47등이었네요. 그 사이 slah007이 K의 풀이를 찾아내 구현에 들어갔고, 저는 3시간 동안 F를 본 kwoncycle을 도우러 갔습니다. 이제서야 스코어보드를 믿고 최대한 코딩이 빠른 풀이 위주로 여러 방법을 고안해 보았습니다. 놀랍게도 slah007이 종료 10분 전에 K를 맞아와 구현할 시간이 생겼지만, 찰나의 차이로 구현하지 못하고 TOO-LATE를 받았습니다. 조금 억울할 뻔 했지만 로컬에서 \(N = 100\)을 돌려본 결과 7200번 정도라 깔끔하게 일어날 수 있었습니다.
문제별 요약
문제 | 풀이 | 코딩 | 비고 |
A (G4, 0:21, +) | kwoncycle | kwoncycle | 가장 쉬운 문제이다. 여러 방법으로 풀 수 있다. |
B (P5, 0:29, +) | slah007 | slah007 | 유명한 클래스 문제에 나오는 아이디어를 쓰면 풀 수 있다. |
C (P3, 4:12, +3) | leo020630 | leo020630 | 관찰 하나를 하면 DP 풀이를 만들 수 있다. 다만 TL이 굉장히 빡빡하다. 상수 커팅을 할 수 있는 여러 가지 방법이 있으므로 심심하신 분들은 모두 도전해보시길 바란다. |
D (D1, - ) | 아마 slah007이 읽었던 것 같다. | ||
E (P2, - ) | 조금 귀찮은 기하 문제다. 풀이가 어렵진 않아서 원래 같았으면 무조건 풀었어야 하는데, 컴퓨터가 비질 않아서 끝까지 짜지 못했다. | ||
F (P3, - ) | 철학을 잘 모르겠는 그리디+구성적 문제다. 대부분은 찍어서 맞은 것 같고, kwoncycle은 bound가 확실히 되는 방법을 찾으려다 실패했다. | ||
G (D1~2?, - ) | slah007이 읽었으나 제곱 미만의 풀이를 찾지 못했다. 사전지식 하나를 알면 풀 수 있는 문제라고 한다. | ||
H (D4, - ) | leo020630이 읽고 코딩했으나 틀렸다. 트리에 관한 성질 하나를 알고 있으면 된다. 30분 정도만 디버깅했으면 맞았을 것 같은데 아쉽다. | ||
I (P1, - ) | leo020630이 읽었고, 쉬운 문제인 줄 알고 조금 보다가 자연스레 잊혀졌다. | ||
J (G2, 1:19, +2) | leo020630, slah007 | leo020630 | 교육적인 이분 탐색 문제다. 조금 틀렸는데 다행히 slah007이 디테일을 잘 잡아주었다. |
K (P2, 4:50, +3) | slah007 | slah007 | 아직도 문제를 잘 모른다. 문자열처럼 생겼는데 사실 생각을 잘 하면 되는 것 같다. |
L (G2, 0:45, +) | kwoncycle | kwoncycle | 쉬운 기하 문제다. 점이 변 양쪽 끝에 있는 것이 항상 이득이다. |
대회 종료 후
현실 감각이 없었습니다. 그냥 시간만 때우다 최대한 빠르게 대회장을 떠났습니다. 당시에는 해외 리저널 신청이 모두 끝난줄로만 알았고, 그래서 그냥 꼼짝없이 은퇴해야하는 상황이었습니다. N시간동안 정말 오만 생각을 다 했던 것 같습니다. 한 번 더 남은 ICPC 출전 기회를 쓸 것인가... 쓴다면 언제 쓰는 것이 맞는가... 군대는 또 언제 가는가... 특히 포스텍의 다른 팀인 Con Forza는 제 조언을 듣고 미리 하노이 리저널에 신청을 넣어 두어 기회가 한 번 더 있었는데, 대회 후 식사 자리에서 이 사실을 깨닫고는 과거의 오만한 자신이 정말 미웠습니다.
그래서 그냥 반쯤 죽은 상태로 집에 돌아왔는데, 뭔가 상황이 잘 돌아가고 있었습니다. 같이 서울 리저널을 망치고 저희보다 행동이 빨랐던 한양대의 NMK 팀이 메일을 넣은 결과 신청 기한이 22일에서 24일으로 연장되었고, (서울 리저널은 23일이었습니다) 최대한 빠르게 모든 절차를 마쳐 등록할 수 있었습니다. 팀명도 무근본 Pourist에서 좋은 기억이 있는 Poking.. 으로 하려다가 대회 장소가 베트남이라는 이유로 한 번 틀어 PhoKing으로 최종 결정했습니다.
그렇게 결과적으로 포스텍의 PhoKing, Con Forza, 한양대의 NMK까지 총 세 팀이 하노이로 향하게 되었습니다. 이후의 일은 2부 후기를 기대해주세요~
대회 후기
일련의 과정들에 대한 후기는 2부에 쓸 예정이고, 서울 리저널 대회에 대한 감상 및 개인적인 의견을 좀 남기려.. 하다가 글이 너무 길어지기도 했고 후기와 맞지 않는 분위기라 생각해 나중에 별개의 글으로 쓰게 될 것 같습니다.
별개의 글 링크: (추후 추가 예정)
올해 서울 리저널 대회는 예선부터 본선까지 유난히 문제 질이나 세팅에 관한 말이 많았습니다. 다만 이런 논란들과는 별개로 저희 팀이 망한 이유는 그냥 대회 중에 정신을 못 차려서라고 생각합니다. 망한 상황을 복구하는 것도 팀의 실력이고, 실제로도 저희 팀 정도를 제외하면 결국 잘하는 팀이 좋은 등수를 받았습니다. 각자 한 문제씩을 잡고 못 풀면 그냥 그대로 시간이 흐르는데, 이는 경험을 강점으로 내세워야 하는 팀이 절대로 해서는 안되는 잘못이었다고 생각합니다. 이런 부분은 구조적으로 이전 팀에 비해 약할 수 밖에 없어 차차 해결해나가야 하는 문제입니다.
하노이 리저널로 커버를 잘 친 상황에서 ICPC 서울 리저널 대회를 망친 것은 크게 아쉽지 않은데, 서울 리저널 대회는 한국 대학생 프로그래밍 경진대회의 역할을 겸하기 때문에 이 대회에서 상을 타지 못한 것에 대한 미련은 조금 남습니다. 별거 아니라도 나라에서 하는 행사라고 수상자들에게 챙겨주는 부분이 있었는데 이를 놓치는 게 다소 아깝네요.
아래에는 올해 서울 리저널 참여 후기를 작성해 주신 분들의 글 중 재미있게 읽은 글들을 모아보았습니다.
같이 읽으면 좋은 글
연세대학교 Endgame 팀 Serendipity님의 글: https://ktypsblog.tistory.com/24
고려대학교 DolAndDool 팀 stonejjun03님의 글: https://stonejjun.tistory.com/218
서울대학교 DaXingHao 팀 puppy, leinad2님의 글: https://puppy05.tistory.com/5, https://leinad2.tistory.com/30
서울대학교 BitsetNapsac 팀 heeda0528, jk410님의 글: https://heejayaa.tistory.com/246, https://blog.naver.com/knoj014/223671028437
KAIST HeyJinhwi 팀 octane님의 글: https://octanec8h18.tistory.com/entry/2024-ICPC-Asia-Seoul-Regional-%ED%9B%84%EA%B8%B0
제가 모든 글을 읽은 것은 아니라.. 쓰신 후기가 있다면 공유해주세요! 즐겁게 읽어보겠습니다.
저와 저희 팀의 이야기는 2부에서 이어집니다. 감사합니다.
'대회 후기 > ICPC' 카테고리의 다른 글
2024 ICPC Regional Contest 후기 - (2) Hanoi (4) | 2024.12.18 |
---|---|
정상화 성공 (7) | 2024.12.14 |
2024 ICPC Seoul Regional 예선 후기 (1) | 2024.11.11 |
The 2024 ICPC Asia Pacific Championship 후기 - (3) (8) | 2024.03.20 |
The 2024 ICPC Asia Pacific Championship 후기 - (2) (12) | 2024.03.13 |