본문 바로가기
대회 후기

2025 ICPC Seoul Regional 본선 후기

by gmroh 2025. 11. 26.

11월 22일 BEXCO에서 열린 ICPC Seoul Regional에 참여하였다. 대회 전부터 여러 우여곡절이 많았지만 전체 17위, 국내 12위를 기록하여 장려상을 수상했다. Asia Pacific Championship 진출도 확정했다!

 

http://static.icpckorea.net/2025/regional/scoreboard/

 

1. 팀 구성

팀원은 jsj0412, gubshig으로 그대로다. 달라진 점은 jsj0412가 특이점에 도달해 코드포스 오렌지를 달성했다는 것 정도.

이번 대회를 준비하면서 정했던 역할은 다음과 같다.

  1. gmroh06 - 애드혹, 구성적, DP, 그리디, 수학(?)
  2. jsj0412 - 기하, 문자열
  3. gubshig - 자료구조, 웰노운

이러한 역할이 정해지는 것은 초반이 지나고 난 이후이다. 3명 모두 플래티넘 하위 이하는 막힘없이 풀기 때문에, 1시간 정도까지는 스코어보드를 보면서 풀리는 문제를 잡았다. 후반부에 남는 문제들은 보통 다이아몬드급의 문제들이라 우리의 체급으로는 혼자 미는 것이 어려워서, 후반부에는 다 같이 한 문제에 집중하는 편이다.

 

팀연습을 꽤 많이 돌았고, 월파급 퍼포먼스와 예떨급 퍼포먼스를 모두 직관하면서 많은 것을 얻을 수 있었다. 우리가 엄청난 퍼포먼스를 보였던 셋은 Yokohama 2024, Seoul 2020 등이다. 반대로 멸망한 셋은 Yokohama 2023, NWRRC 2024등이 있다.

 

Yokohama 2024는 gubshig이 C를 퍼솔했고, 내가 F를 퍼솔하면서 순간 1위까지 올라갔던 셋이다. 개인에게 잘 맞는 문제가 나온 것이 주요했지만, 문제 배분도 잘 되었던 것 같다. 누가 과제를 해야 된다고 징징거리는 바람에 후반부가 다소 망하긴 했지만 압도적인 페널티 덕분에 본대회였다면 7위의 결과를 얻었다. Seoul 2020은 웰노운 파티였던 셋 때문에 gubshig이 날아다녔고, 나는 실직하긴 했지만 jsj0412도 구현을 빠르게 하면서 마찬가지로 본대회 7위의 결과를 얻었다. 

 

Yokohama 2023은 셋에 조합론과 확률론이 매우 많이 등장했다. 조합론을 그나마 공부해 본 사람이 나 밖에 없었기 때문에 나한테 과부하가 걸렸고, 나도 조합론을 잘하는 편이 아니기 때문에 그대로 멸망하고 말았다. NWRRC 2024는 셋이 매우 좋았다. tourist가 세터여서 그런지 웰노운도 잘 없었고, 처음 보는 아이디어를 요하는 퀄리티가 매우 좋은 문제들도 여럿 보였다. 하지만 역설적이게도 이런 환경에서 gubshig과 jsj0412가 그대로 실직하고 말았다. 

 

수학이 많은 셋이면 수학을 잘하는 사람이 단 1명도 없기 때문에 그대로 멸망했고, 아이디어를 요하는 문제가 많이 나온다면 gubshig이 그대로 실직하면서 퍼포먼스가 급락했다. 결과적으로 우리가 잘하는 셋은 gubshig이 잘하는 웰노운이 많은 셋이었다. 우리가 수학을 제외한 플래티넘 중위 이하의 문제는 거의 다 해결할 수 있기 때문에 gubshig의 웰노운 지식을 이용한 고점 확보가 중요할 것이라는 분석이다. 팀원들과 회의를 해 보며 서울에는 수학이나 아이디어가 중요한 문제가 많이 나오지 않기 때문에, 적어도 우리가 못하는 유형의 문제들은 아닐 것이라는 결론에 도달했다.

 

2. 대회 이전

대회 전날부터 jsj0412와 gubshig이 이상한 짓을 시작했다. 너무 많기 때문에 개조식으로 나열한다.

  1. 팀 노트와 재학증명서 출력 안 하기 - jsj0412
  2. 키보드 집에 놓고 오기 - gubshig
  3. 부산 버스에서 5번 넘어지기 - gubshig
  4. 예비소집 때 마우스를 컴퓨터에서 삭제하는 마술 - gubshig
  5. 맥주 못 마시게 하기 - jsj0412

팀 노트와 재학 증명서는 부산에 먼저 도착한 내가 프린트했고, 키보드는 어쩔 수 없이 기본 키보드를 사용했다. 백스페이스 위치가 이상한 것이 계속 걸렸지만 타이핑하다 보니 적응이 되었다. 예비 소집에서 Sanitizer를 Clion에 적용하려고 시도해 봤지만 실행이 됐다 안됐다 하는 이상 증세를 보여 포기했다. 그러던 중 갑자기 마우스 감도가 이상하다며 설정을 만지던 gubshig이 마우스를 컴퓨터에서 삭제하는 마술을 보여 줬다. 마우스를 다시 연결해도 안 되고 다른 마우스를 연결해도 안 되는, 말 그대로 마우스를 컴퓨터에서 삭제해 버렸다. 스태프 분께서 컴퓨터를 재부팅해서 해결하긴 했지만 기가 막힌 경험이었다.

 

이후 호텔에 체크인하고, 근처 고깃집에서 밥을 먹었다. 가격이 정말 비쌌지만 맛있었으니 상관 없다. 식사를 해결한 후, 호텔로 돌아와 플랜디를 했다. 뇌절에 뇌절을 거듭한 끝에 플래티넘5를 1시간 동안 푸는 나를 보며 일찍 자야겠다고 생각했다. 당일 아침에 일찍 일어났기 때문에 10시에 일찍 자러 들어갔다. 그러나, 근 5년 동안 처음으로 느껴지는 두통 때문에 잠에 들지 못했다. 다른 사람들의 ICPC 후기를 읽으며 결의를 다지던 중, 도저히 안되겠다는 생각이 들어 나만의 루틴으로 2시 좀 넘어서 잠에 들 수 있었다.

 

당일 아침부터는 나의 이상한 짓이 시작되었다. 전날 늦게 잔 탓인지 아침부터 Brain Fog가 느껴져서 느낌이 안 좋았다. 아침은 gubshig이 sait2000님과 먹기로 했다며 순두부 찌개 집으로 갔다. 테이블에 계란이 있었는데, 삶은 계란인줄 알고 깼지만 날계란이었다... 감사하게도 직원 분께서 치워 주셨고, 삶은 계란인 줄 알았다고 사과 드렸다. 순두부 찌개는 맛있었고, gubshig과 sait2000님이 나누는 대화에 벽을 느끼며 식사를 마쳤다.

3. 대회 

~ 0:16 (M AC)

G를 읽어 보고 풀이가 1초만에 나와서 바로 구현을 시작했지만 사소한 디테일 이슈로 예제가 나오지 않았다. 옆에서 퍼솔이 나왔던 M 풀이가 나왔다고 해서 jsj0412에게 키보드를 주고 코드를 점검했다. M은 그대로 AC를 받았다.

 

~ 0:33 (L AC)

G의 풀이는 맞다고 생각했지만 아직도 퍼솔이 나오지 않았다. gubshig이 L 풀이도 나왔다고 해서 안전하게 L 먼저 보는 게 맞다는 판단 하에 키보드를 잡지 않았다. 세그를 쓰는 풀이를 냈는지 구현에 시간이 꽤 걸리는 걸 보고 G를 먼저 보는 게 나았겠다는 생각을 했다. 그래도 안 틀리고 AC를 받았다.

 

~ 0:39 (G AC +1)

키보드를 넘겨 받고 실수를 고쳐 제출했지만 WA를 받았다. 예전에 Parametric Search 과정에서 오버플로우에 크게 당한 경험이 있어서 문제점을 바로 간파하고 AC를 받았다. 오버플로우 때문에 말린 팀들이 꽤 있었기 때문에 여기까지는 매우 순조로웠다.

 

~ 1:32 (E AC)

각자 잘하는 부분을 맡아 나는 D, jsj0412는 C, gubshig은 E를 보고 있었다. 내 D 풀이가 빠르게 나왔고, 구현도 간단했기 때문에 바로 구현을 시작했다. 예제가 나와서 제출했지만 WA를 받았다. 그러던 중 E 풀이가 나왔다고 해서 키보드를 gubshig에게 넘기고 나는 틀린 점을 살펴 보았다. 말도 안되는 실수가 있었고, 이를 고쳐서 제출했지만 또 WA를 받았다. 벌써 2틀이라 슬슬 불안해지기 시작했다.

 

~ 1:46 (D AC +4)

D에서 부등호 실수를 한 것을 발견하고 고쳐서 제출했지만 또 WA, 똑같은 변수명을 2번 사용하는 말도 안되는 실수를 한 것을 뒤늦게 깨닫고 이를 고쳐서 제출했지만 또 WA였다. C 풀이가 나온 jsj0412에게 키보드를 넘기고 프린트된 코드를 읽어 봤다. 순식간에 4틀을 당한 나는 내 풀이가 근본적으로 잘못된 건 아닌지 의심하는 지경에 이르렀고, 슬슬 눈 앞이 혼미해 지던 중 3번째 제출에서 수정된 부분이 미적용된 것을 발견했다. 일단 이를 수정하고 더 틀린 부분이 없는지 심사숙고한 끝에 제출을 결정했고 AC를 받을 수 있었다.

 

~ 2:40 (C AC)

jsj0412가 1시간 동안 무한 디버깅을 한 끝에 AC를 받았다. gubshig이 I를 읽어보고 경악을 금치 못했다. 코테에 나와도 안 이상할 알고리즘은 하나도 필요 없는 구현 문제라고 했다. K는 불도저 트릭을 쓰는 문제 같다는 이유로 유일한 불도저 경험자였던 내가 맡았다.

 

~ 3:03 (I AC)

jsj0412가 머신을 오래 잡고 있었기 때문에 구현 구체화가 다 끝났던 탓인지 23분만에 구현을 끝내 버리고 AC를 받았다. 나는 K를 보고 있었지만 불도저 같다는 팀원의 말에 매몰되어 불도저 쪽으로만 생각하고 있었다.

 

~ 4:32 (K AC)

스코어보드를 훑어 본 결과, K를 풀면 높은 확률로 아챔에 진출할 수 있었기 때문에 다 같이 K를 보기 시작했다. 나는 불도저의 늪에서 빠져나오지 못하고 말도 안되는 뇌절 아이디어를 계속 뱉기 시작했다. 그 중 하나였던 한 점 기준으로 각도 정렬해서 전처리하는 건 어떠냐는 말을 들은 jsj0412가 각도 정렬 스위핑 풀이를 냈다. 내가 며칠 전 DSHStack 검수를 하면서 CCW에 대한 숙련도가 매우 높아졌기 때문에 구현은 내가 맡았다. 그러나, 구현이 쉽게 끝나지 않았다. 분명 구현은 기하 문제 치고 매우 간단했지만, 컨디션이 좋지 않은 나는 여기서도 무한 디버깅을 시작했다. 내적을 PS에서 써 보지 않아서 내적 부호를 몇 번이나 수정했고, 한 바퀴를 스위핑하는 것은 같은 배열을 이어 붙이는 것이 편하다는 것을 알면서도 효율적으로 구현하려다가 시간을 날렸다. 거의 1시간 반 동안 붙잡은 끝에 다행히 틀리지 않고 AC를 받았다. AC를 받는 순간 gubshig의 여자 비명 소리 때문에 대회장이 정적이 되고 모두가 우리를 바라봤다. 너무 쪽팔렸다. 어떻게 사람한테서 그런 소리가 나오지..

 

~ 5:00

남은 문제들은 우리가 30분 안에 풀 수 있는 문제가 아니었기 때문에 아챔에 갈 수 있기를 기도하며 대회가 종료되었다. 

스코어보드를 공개하면서 꽤 낮은 등수부터 K 솔브가 나오는 것을 보고 망했다고 생각했다. 하지만 기적적으로 우리보다 페널티가 좋았던 팀들이 K에서 페널티를 쌓으면서 매우 근소한 차이로 수상에 성공했다.

4. 고찰

  • 결과를 보고 기쁜 마음보다는 아쉬운 마음이 더 컸다. 내가 부진하지 않았더라면 동상도 충분히 가능했을 것이기 때문이다.
  • 컨디션 관리와 페널티 관리 능력을 신경써야 할 것 같다. 평소에도 한 번 틀리기 시작하면 연속으로 틀리는 경우가 많은 것 같다.
  • 아챔에 진출한 이상, 월파를 목표로 할 것이다. 일단 1월까지 각자 폐관 수련을 하고 2월에 팀연습을 할 계획이다.
  • 겨울 방학에 코드포스 GM 달성이 목표이다. 4월에 2200을 찍먹하고 2100 근처에서 방황하고 있기 때문에 버추얼과 업솔빙을 철저하게 해서 내 한계를 테스트해 보고 싶다.
  • 내년에 병역 이슈로 팀이 해체될 것인데 누구와 팀을 하게 될지..

'대회 후기' 카테고리의 다른 글

2025 숭고한 연합 알고리즘 경진대회 후기  (2) 2025.09.02
SCPC 2025 본선 후기  (0) 2025.09.02
SCPC 2025 2차 예선 후기  (0) 2025.09.01
SCPC 2025 1차 예선 후기  (0) 2025.09.01
2025 KAIST RUN Spring Contest 후기  (0) 2025.05.31