본문 바로가기

PS ─ 후기

ICPC 2025 리저널 본선 후기

Just Reboot JungSangHwa

Pusan National University

kolorvxl, qvixnh22, 6729skl

 

대회 이전

올해 리저널 이름은 Seoul Regional이지만 부산에서 열렸다. 부산대 카르텔 척결좀

그래서 부산대 예선 팀이 많았고 우리도 편한 마음으로 참가할 수 있었다.

 

예선 이후 Just Reboot JungSangHwa(이하 정상화) 팀은 주기적으로 5시간 팀 연습을 돌았다.

개인적으로도 많은 노력과 재능으로 예선 때보다 훨씬 체급을 키워갈 수 있었다.

 

 

예비소집 2일 전에는 경희대학교 Memoria 팀과 저녁을 먹었다.

부산대 측 참가자는 kolorvxl, qvixnh22, 경희대 측 참가자는 yyyy7089, jwpassion1이다.

 

Memoria 팀은 정상화 팀의 상황과 비슷하다고 알고 있다.

학교의 전반적인 PS 수준도 비슷하고 거기서 팀의 전력도 비슷한 편이다.

 

예비소집

예비소집 날에는 solved.ac 디스코드에서 친해진 사람들을 만나러 다녔다.

  • Memoria 팀의 yyyy7089님은 대회 일정동안 계속 봤다. 
  • Rock kokiri Paper 팀의 cywohoy님도 눈에 띄어서 그런지 자주 봤다.
  • 3Blue1Nutella 팀의 tjrn3712님과 trashmouse0524님은 잊을만하면 내가 찾아갔다.

↑ 나중에 추가할 예정인데 기억이 안 나서 추가 가능할지 모르겠습니다 ㅋㅋㅋ

 

예비소집이 끝나고 나서 cywohoy님의 무리에 자연스럽게 끼어 저녁을 먹으러 갔다.

(kolorvxl, 6729skl, cywohoy, davidkim0, loreips3115, cenix820)

cywohoy님은 그냥 알고 있었고, 나머지 세 분도 사실 KSA 카르텔이라 mythofys님의 친구라서 mythofys님을 찬양하면서 친해졌다.

 

대회 당일

대회 당일에는 스태프로 계시는 kwoncycle님이랑 leo020630님을 뵈었다. 뭔가 여러가지 일이 있었던 것 같긴 한데 이 글을 너무 늦게 써서 기억이 잘 안 난다. 수상까지 달려보자는 마음가짐으로 에너지 음료를 들고 야심찬 마음으로 대회장에 들어갔다. 내가 오렌지 색깔 음료를 마시고, qvixnh22님에게 레드 퍼포를 내라고 빨간색 음료를 드렸던 기억이 있다. ㅋㅋㅋ

 

대회 초반

초반에는 13문제를 골라내고 읽어야 하며, 심지어 팀원 셋 다 스피드포스에 약해서 바로 치고 나가기 어렵다.

대회가 시작하고 대략 10분이 지난 뒤, 스코어보드에 L, M 솔브가 천천히 올라오기 시작했다.

L은 6729skl님이 알 것 같다고 하셔서 먼저 구현에 들어갔다.

 

M을 그동안 나랑 qvixnh22님이 보고 있었는데 거의 동시에 풀이가 나왔다.

M이 한 줄 컷이 되기 때문에 6729skl님을 밀어내고 M을 먼저 구현했다.

 

0:19   M - Triple Fairness   Accepted

 

그 다음 6729skl님이 다시 키보드를 잡고 L 구현에 들어갔다.

 

0:21   L - Segments   Wrong Answer
0:23   L - Segments   Wrong Answer
0:26   L - Segments   Accepted

 

이후 C에 대한 두 가지 풀이가 나왔다.

하나는 6729skl님의 1 × 1 칸을 정점으로 보는 풀이이고, 하나는 나의 LCA + 다각형의 넓이 구하기 풀이였다.

풀이는 6729skl님의 풀이를 사용하되, 구현은 내가 하기로 했다.

더보기

대회 중 6729skl님의 풀이를 사용한 구현은 4000바이트 넘게 사용했다. 

 

대회가 끝난 후 나의 LCA + 다각형의 넓이 구현을 시도해봤는데, 사실 LCA는 필요가 없기 때문에 (u -> v -> LCA(u, v) -> u 다각형 대신 u -> v -> root -> u 다각형을 계산해도 무방하다) 1200바이트 선에서 구현이 끝났다.

 

아무튼간에 구현을 맡은 건 나였고, 6729skl님의 풀이를 채용한 것도 나기 때문에 절대로 남탓을 하려는 건 아니다!! 다만 격자 그래프의 구현량을 얕보면 안 되겠다는 생각이 들었다.

 

그 외에도 G에 대한 풀이가 나왔다.

이거는 누가 풀이를 내고 누가 구현을 했는지는 나는 잘 모른다.

 

그 외에 D에 대한 풀이 고민도 있었는데, 결론이 어렵다로 나와서 일단 미뤄뒀다.

그리고 문제가 발생했다.

 

대회 중반

사실 세 번째, 네 번째 문제를 이렇게 늦게 코드를 완성한 것도 이상적이지는 않다.

그러나 그것보다 더 최악의 상황이 일어난 것이다.

 

1:22   C - Bay   Wrong Answer
1:33   G - Extraterrestrial Creatures   Wrong Answer
1:42   G - Extraterrestrial Creatures   Wrong Answer
1:43   G - Extraterrestrial Creatures   Wrong Answer

 

야심차게 구현한 두 문제의 코드가 모두 WA 판정을 받은 것이다.

G는 두 명이서 열심히 디버깅을 했고,

C는 내가 디버깅을 했는데 어디서 틀렸는지를 몰라서 쩔쩔매고 있었다.

 

다시 내가 키보드를 잡고, C를 리팩토링 한 후에 다시 쭉 훑어봤는데 문제를 찾을 수 없었다.

자포자기하는 심정으로 한 번만 더 제출해보자고 하고 C를 제출했다.


1:58   C - Bay   Accepted

 

다행히 C를 맞긴 했지만, 아직 G가 남아있었고, G를 풀더라도 겨우 4솔밖에 안 되기 때문에 멘탈이 터졌다.

그 후로도 1시간 동안 팀원들은 G 디버깅을 계속 하고 있었다.

 

2:19   G - Extraterrestrial Creatures   Wrong Answer
2:22   G - Extraterrestrial Creatures   Wrong Answer
2:30   G - Extraterrestrial Creatures   Wrong Answer
2:49   G - Extraterrestrial Creatures   Wrong Answer

 

그렇게 아직 세 문제밖에 풀지 못한 상태에서 대회의 절반이 지나갔다.

 

이럴수록 침착해야 한다는 내 기조에 따라 도시락이 도착하자마자 내가 제일 먼저 도시락을 먹었다.

먹으면서 차분해지는 느낌이 들었고, E를 천천히 보니까 생각이 나기 시작했다..!

 

대회 후반

E를 풀 방법이 떠올라서 키보드를 다시 뺏고 바로 구현했다.

한 번 틀려서 멘탈이 다시 나갈뻔했으나 정신 차리고 디버깅에 성공했다. (다행히 작은 실수였다)

 

2:51   E - Clean Arrangements   Wrong Answer
2:59   E - Clean Arrangements   Accepted

 

그 와중에 G를 6729skl님이 아예 새로 짰고, 기나긴 G 디버깅의 여정도 끝이 났다.

 

3:06   G - Extraterrestrial Creatures   Time Limit Exceeded
3:09   G - Extraterrestrial Creatures   Accepted

 

D 풀이를 어떻게 떠올렸는지 자세히 기억이 나지는 않는다.

(정확히는 나와 qvixnh22님 간의 증언이 맞지 않는 구석이 있다)

 

대략적으로 설명하자면 결론을 단순하게 잡아도 수학적으로 어떻게 성립하는 문제고,

구현으로 들어가면 분기가 두 개 정도 있는 덜 무거운 구현이었다.

 

3:18   D - Bookshelf   Accepted

 

이미 읽어봤고 풀만한 문제들은 다 풀었고, 이 때 스코어보드에서 풀만해보이는 문제는 I와 K가 있었다.

I는 언젠진 모르겠는데 읽어보고 6729skl님이 구현을 하러 갔다.

 

K는 요상한 기하 문제였는데, qvixnh22님이 불도저를 섞으면 된다는 주장을 했다.

그런데 거기서 qvixnh22님이 구현을 하는 것도 위험한 선택이었고,

거기서 내가 난생 처음 짜보는 불도저를 시도하는 것도 위험한 선택이었다.

그리고 사실 불도저 풀이는 이해 못했다

 

그래서 어떻게 불도저가 되는지를 몰라서 계속 말을 주고 받았다.

그러다가 불도저를 안 쓰는 좋은 풀이를 발견해서 일단락되었다.

 

그 때 6729skl님이 키보드를 잡고 있었고, 75 ~ 80분 정도 남은 상황이었다.

구현 시간을 물어보니 60분 정도 걸릴 것 같다고 해서 그냥 키보드를 뺏었다.

 

다행히 I는 명세를 읽고 그대로 구현하면 되는 문제라서 페어 코딩으로 빠르게 구현했다.

 

4:21   I - Magic Door   Accepted

 

그러고 나서 K를 구현하는데 내적 외적도 헷갈리고 개인적으로 너무 힘들었다.

qvixnh22님이 종이에다가 각도 정렬 구현을 써줘서 망정이지...

 

중간에 6729skl님이 H 풀이가 나온 것 같다는 이야기를 했는데

그냥 K를 계속 잡고 가는 걸로 결론을 냈다.

4:54   K - Quadrants   Accepted

결국, 6분을 남기고 페어 코딩으로 K를 구현해내는데 성공했다!

 

4:59   H - Fair Problemset   Wrong Answer

 

그 이후 6729skl님이 H를 빠르게 구현해서 제출해봤으나 AC가 뜨는 일은 없었다.

 

대회 후

대회가 끝나고 다시 행사장으로 돌아왔다.

Memoria와 이야기했는데 Memoria도 정말 아쉬운 성적을 거두었다고 들었다.

대회 행사는 재밌었는데 글을 너무 늦게 써서 기억이 잘 안 난다.

 

전북대 iluem100님과 전남대 팀 분들과 밥을 먹었다. 그러다가 앳코더 시간이 다가와서 도망갔다. ㅋㅋㅋ

대회 다음 날 코드포스에서 레전드 퍼포먼스를 찍고 레드를 가면서 무려 리저널 본선을 액땜으로 써버리는 기염을 토했다 (...)

qvixnh22님 블로그에서 돚거해옴

 

대회가 끝나고 다른 리저널도 결과가 나오면서 이 글을 쓸 시점에는 이미 APAC 진출자에게 메일까지 왔다.

APAC은 올해 70팀을 선발하며, 정상화 팀은 69등으로 간신히 APAC에 진출하게 된다.

 

대회 후기

시간대별 정상화 팀의 등수 그래프

 

중반을 그렇게 말아먹고도 결국 8솔에 성공했던 것을 보면 정말 아쉽다고 생각이 드는 대회였다.

 

정상화 팀의 고질적인 문제인 스피드포스에 약하다도 문제가 크고, 코드 스타일도 달라서 디버깅도 어렵고, 그리고 거기서 셋이 동시에 저점이 뜬 것도 말이 안 되는 일이었다. APAC 전까지는 이 많은 문제를 반드시 고쳐야 할 것이다.

 

대회 당시에는 찐렌지였지만 레드 퍼포가 꾸준히 뜨던 시기였기 때문에 사실상 1레드 팀이고 사실상 2오렌지팀과 전력이 비슷하다고 봐야 했다. 실제로 대회가 끝나고 나서 많은 2오렌지팀들 사이에 껴있었고. 그런데 초반을 너무 확실하게 말았다. 오죽하면 3블루 팀보다도 훨씬 못한 성적을 이어가고 있었다.

 

urd05님이 디스코드에서 한 말에 따르면 ICPC는 2700 (혹은 2400) + 뾰족 두 명보다는 2400 (혹은 2100) 육각형 세 명이 사이클을 돌리면서 패널티를 관리하는 것이 더 낫다고 한다. 정상화 팀은 역시 구현력이 애매하다. 나도 레드 평균에 비하면 잘 모르겠고, 팀원이 할 것까지 떠맡을 수 있는 능력이 있느냐 하면 더더욱 아니다. 따라서 결과를 보면 알겠지만 압도적인 패널티를 받으며 패널티 관리를 전혀 하지 못했다.

 

나 역시 구현을 더 철저하게 깎고 저점 다지기와 고점을 노려봐야겠지만, 이상적으로 팀원들의 구현력까지 올라서 패널티 관리까지 된다면 APAC에서도 꿇리지 않을 것이라 생각한다. 발상력은 좋기 때문에 시간만 벌 수 있다면 WF까지 나아가는 것도 언제까지고 하늘의 별따기이지만은 않을 것이다.

'PS ─ 후기' 카테고리의 다른 글

SUAPC 2026 Winter 후기  (1) 2026.02.28
Codeforces Grandmaster 달성 후기  (0) 2025.11.27
2025 KAIST ICPC Mock 후기  (0) 2025.11.03
ICPC 2025 예선 후기  (0) 2025.10.31