대회 후기/ICPC

2024 ICPC Regional Contest 후기 - (2) Hanoi

leo020630 2024. 12. 18. 22:45

1부: https://leo630.tistory.com/243

 

스코어보드: https://icpcvn.github.io/2024/regional/scoreboard.html

셋: https://oj.vnoi.info/contest/icpc24_regional

 

BGM: https://youtu.be/HY8G_hsuhDs?si=CDpHZzvn5t4y8pm4

 

 

서론

 

서울에서의 실패를 뒤로 하고 2024 ICPC 하노이 리저널에 참가했습니다. 하노이는 2024 APAC가 열렸던 곳으로 저와 kwoncycle에게는 WF 진출을 가져다 준 좋은 기억이 있는 도시입니다. 4개나 되는 해외 리저널, 그 중에서도 베트남 리저널은 개최 도시가 매번 바뀌는데도 하노이를 다시 가게 되니 운명의 장난인가 하는 생각이 들었습니다.

 

이 글에서는 서울 리저널 후 하노이 리저널 참가까지의 이야기를 다룰 예정입니다. 조금 길 수도 있으나 재밌게 봐주시면 감사하겠습니다.

 

출국 전

 

사실 충동적으로 신청을 끝낸 것과는 달리 실제로 하노이에 가기까지는 여러 우여곡절이 있었습니다. 기말고사 바로 전 주인 만큼 해결해야 할 문제가 여럿 있었는데, 그 중 가장 중요했던 것은 단연 셋 모두가 듣는 컴공과 졸업연구 과목이었습니다. 최종 발표일이 리저널 당일이어서 발표에 참석하기는 불가능했고, 특히 slah007은 이 과목에서 F를 받아버리면 예정보다 한 학기를 더 다녀야 하는 상황이었습니다. 실제로 이 문제가 해결되지 않으면 불참하자는 논의도 있었습니다. 불안한 마음으로 과목 담당 교수님께 저희에게 ICPC가 어떤 의미이고 이를 위해 지금까지 걸어온 길이 무엇인지 장문의 메일을 써서 보낸 결과, 특수한 경우임을 인정해주셔서 최종 발표에 참여하지 않을 수 있었습니다. 이 글을 빌어 감사의 말씀을 전합니다. 그리고도 각자 다른 과목들에서 몇 개의 시험과 과제를 끝마친 후에야 안심하고 비행기를 탈 수 있는 상태가 되었습니다.

 

마음의 안정을 찾은 후에는 팀 내부적으로 피드백이 있었습니다. 다들 실력의 문제라고는 생각하지 않았기 때문에 대회 중 의사소통을 더 적극적 & 효율적으로 하는 것으로 결론을 지었습니다. 그 와중 두 리저널 사이에 코드포스 Rated Round가 3개 정도 있었는데, 두 팀원이 200점씩 올려 각각 2450점과 2350점을 찍는 동안 저는 한 번은 서울 리저널 당일에 멘탈이 나간 상태로, 한 번은 감기에 걸린 채로 코포를 치는 바람에 100점을 날렸습니다. 아무튼 팀 평균 레이팅은 서울 리저널을 칠 때보다 100점 정도 올랐습니다.

 

 

 

바쁜 시간을 쪼개  22년도 베트남 리저널으로 팀 연습도 한 번 했습니다. 2시간 10분만에 9문제를 풀어 우승도 노릴 수 있었으나, 이후 아무 문제도 풀지 못해 본 대회 기준 8등에 해당하는 성적이 되었습니다. 조금 아쉽긴 했으나 APAC 티켓을 따기 위해서는 차고 넘치는 결과였기 때문에 안심할 수 있었습니다. 또한 22-23년도에 출제된 문제들의 성격이 비슷해 경향이 크게 바뀌지 않을 것이라는 결론을 얻었습니다. 전반적으로 서울 리저널보다 수학 문제가 많이 출제되어 저희 팀에게는 오히려 좋은 쪽으로 작용했던 것 같습니다.

 

올해 하노이 리저널에 참가한 한국 팀은 총 3팀으로, 포스텍의 PhoKing과 Con Forza, 한양대의 NMK 팀입니다. Con Forza는 아예 같은 학교고 NMK 역시 팀 연습을 몇 번 같이 하는 등 접점이 있었기 때문에 준비를 비교적 수월하게 할 수 있었습니다. 출국 준비는 2월에 한 번 해 본 것이라 어렵지 않게 마친 후 대회 이틀 전인 수요일 아침 하노이행 비행기에 올랐습니다.

 

1일차

 



약 5시간의 비행 끝에 하노이에 도착했습니다. 지난 플레이오프 때는 피켓을 든 volunteer 분들과 버스가 있었는데, 이번에는 없어 직접 택시를 잡아 이동해야 했습니다. 처음에는 공항 앞에 택시를 잡아주시는 분들이 있어서 이를 이용하려 했지만, 1번의 MLE와 1번의 TLE 끝에 그냥 그랩을 이용해 택시를 잡았습니다. 아마 사람만 5명에다가 캐리어도 하나씩 있어서 맞는 차를 구하기가 쉽지 않았나 봅니다. 

 

첫 날에는 공식 일정도 없고 시간도 애매해서 그냥 쉬다가 저녁식사만 다 같이 했습니다. 그럴듯한 베트남 음식점을 찾아 갔는데, 가격이 현지치고 비쌌던 만큼 나름 만족스럽게 먹었습니다.

 

2일차

 

 

2일차에는 개막식과 예비소집이 있었습니다. 2일차부터는 한양대 NMK 팀이 도착해서 같이 움직였습니다. 플레이오프 때에는 PS 대회에서 이런 웅장한 개막식이 처음이라 놀랐는데, 하노이 리저널 역시 완전히 똑같은 포맷으로 행사를 진행해서 신기했습니다. 축하 공연 -> 귀빈 소개 -> 팀 소개 정도의 순서였던 것 같습니다.

 

개막식과 예비소집 사이에 시간이 애매하게 비어서 점심을 해결해야 했습니다. 어디 나가기에는 시간도 정보도 없어서 NMK 팀이 찾아낸 학교 카페테리아에 갔는데, 원래 많은 인원을 잘 받지 않는지 아니면 장사를 안 하는지 주문을 쳐내는 속도가 상당히 늦었습니다. 음식보다 음료수가 먼저 나왔는데 qwerty 선배가 시킨 칵테일 비슷한 음료에 개미가 있다고 주장했습니다. 저는 너무 오랜만에 듣는 단어에 그럴 리가 있냐, 데코용 씨앗 아니냐며 확인했지만 아쉽게도 제 생각이 틀렸습니다. 너무 어이가 없어서 사진 찍는 것마저 까먹었습니다. 이후 똑같은 음료를 새로 받았지만 달라진 것이 없어 선배는 결국 음료를 마시지 못했습니다. 30분 가량을 더 기다린 후 (쌀국수라고 주장하는) 라면이 나왔고, 육개장 사발면에 스프를 까먹고 넣지 않은 맛이었습니다. 별다른 선택지가 없어 어떻게든 먹어치우고 자리를 떴습니다.

 

이후에는 예비소집을 진행했습니다. 베트남 리저널 예선 셋을 그대로 던져주길래 문제를 보지는 않았고, 매번 하는 채점 서버 속도 테스트에 열중했습니다. 뭔가 베트남의 백준 느낌인 VNOJ 서버를 사용하는데 서버가 진짜 너무너무 빨랐습니다. 체감상 꽤 복잡한 연산도 1초에 5억은 넉넉한 느낌이었으며, 코드 제출도 복붙으로 가능해서 편리하다는 느낌을 받았습니다.

 

다만 훌륭한 소프트웨어 환경과는 다르게 하드웨어적으로는 아쉬운 부분이 꽤 있었습니다. 키보드도 무조건 공용을 사용해야 했고, 책상과 의자 역시 편한 느낌은 아니었습니다. 무엇보다 대회장이 너무 추웠습니다. 하노이가 베트남 북부인데다가 12월이라 날씨가 한국 10월 정도였는데, 대회장이 외부와 연결된 형태라 반팔 티만 입고 코딩을 하기는 불가능에 가까웠습니다. 다행히 다들 외투를 입는 것 같아 본 대회에는 몇 겹씩 껴입고 와서 수월하게 키보드를 칠 수 있었습니다.

 

 

 

원래 학교 Cafeteria에서 저녁을 다같이 먹는 일정이 있었던 것 같은데, 이미 호되게 당한 저희는 power 개인행동을 시전해 숙소로 돌아왔습니다. 대회 전날이라 고오급 스테이크 하우스에 가서 기름칠을 맘껏 했습니다. 술도 원래 대회 전날에 잘 먹지 않는데 변화를 시도해보는 것도 나쁘지 않을 것 같아 맛있게 마셨습니다. 그덕에 NMK 친구들의 초특급 유머를 더 야무지게 즐길 수 있엇습니다. 아무 생각 하지 않고 시켰더니 가격이 꽤 세게 나왔는데, 같은 메뉴를 한국에서 시켰다면 아마 총합 200만원 정도는 나왔을 것 같아서 만족하고 있습니다. 여담으로 개미 음료수의 주인공 qwerty 선배가 생일이었는데 여러모로 안타까워 보여 직원에게 몰래 말해 생일 축하 서비스를 받고 화목하게 식사를 마쳤습니다.

 

3일차 (전반)

 

 

대회가 현지 기준 아침 8시 시작이라 다들 6시에 기상했습니다. 막상 빨리 도착했는데 대기 장소도 없고 시작도 좀 미뤄져 방치되어 있다 들어갔습니다.

 

대회 중

 

slah007이 앞, 제가 가운데, kwoncycle이 뒤를 읽고 시작했습니다.

 

~0:12 (3솔)

 

F번 제목이 FizzBuzz라 빠르게 읽었습니다. 어렵지 않은 케이스워크 문제라 퍼솔을 노리고 짰는데 틀렸습니다. 그 사이 slah007이 C를 짤 수 있다고 해 비켜주었고 한 번에 맞아 퍼솔을 먹었습니다. 저는 그 동안 F의 반례를 찾고 많이 풀린 G를 봐두었고, 컴퓨터가 비자마자 빠르게 두 문제 모두 AC를 받았습니다. 퍼솔 풍선이 달려는 있던데 주지 않아서 좀 실망했습니다.

 

~0:53 (6솔)

 

이후 slah007의 D가 컴퓨터를 넘겨받았고, 저는 이미 스코어보드 최상단에 있는 상황이라 안 풀린 문제를 우선적으로 읽었습니다. 바로 풀 수 있는 문제가 없어서 대부분의 문제를 다 읽었을 때쯤 slah007이 D AC를 받았고, 998244353이 있어 읽기 싫던 L을 넘겼습니다. 이후 kwoncycle이 M, 다시 slah007이 L을 차례로 잘 맞아주어서 1시간만에 무려 서울 리저널과 같은 6솔브를 달성하며 스코어보드 최상부로 올라섰습니다.

 

~1:47 (7솔)

 

kwoncycle에게는 수학 문제 냄새가 나는 K를 몇 개의 관찰과 함께 넘기고, 저는 B를 우선적으로 보았습니다. 제한이 작아 처음엔 플로우인가 싶었지만 Bit DP 쪽으로 생각하니 가닥이 조금 보였습니다. 풀이를 정리하던 와중 kwoncycle이 K에서 몇 번 틀리길래 스트레스를 짜라고 시켰습니다. 다행히 스트레스가 반례를 잘 잡아주었고, 2번 틀린 후에 K에서 AC를 받았습니다. 이후 제가 컴퓨터를 넘겨받았습니다.

 

~2:51 (8솔)

 

B는 TSP를 한 번 돌리고, 이를 바탕으로 SOS 배열을 구하고 다시 마지막을 DP나 다익스트라로 처리해야 하는 끔찍한 문제였습니다. 심지어 베트남 리저널에서 유독 좋아하는 역추적을 해야 했기에 구현이 정말 쉽지 않아 키보드를 꽤 오래 잡았습니다. 오랜 사투 끝에 예제가 완벽히 나오는 것을 확인했고, 스페셜 저지 문제라 거의 3분 정도 기다린 끝에 AC를 볼 수 있었습니다. 대회 중에는 안정권이라고 생각해서 편하게 코딩했는데 이 문제를 풀지 못하면 APAC 진출이 불가능했다는 사실이 정말 놀랍습니다.

 

~5:00 (8솔)

 

이때까지 안정적으로 금메달권(학교 기준 4등)을 유지했고, 남은 문제는 다음과 같았습니다.

 

A: 레전드 실수 기하

E: 엄청 쉬운 케이스워크 문제로 보이지만 아직 AC가 없고 1등 팀이 여러 번 틀림

H: 수학 느낌인데 쉽지 않음

I: 998244353이 있어 전통적으로 베트남에 하나씩 나오는 다항식 문제로 추정

J: 그나마 할만한 그래프 문제

 

제가 B와 사투하는 동안 slah007이 J를 좀 봐두었기에 그대로 컴퓨터를 넘겨받았고 저와 kwoncycle이 각각 H와 I를 잡았습니다. 이미 티켓은 확보했다고 생각했고 시간도 많았기에 우승을 노리기 위해 모두 다른 문제를 잡았지만, 결국 하나도 풀지 못하며 대회가 마무리되었습니다. 1시간쯤 남겨둔 시점에 저는 J로 합류하였으나 역추적이 너무나 까다로워 아직도 감을 잡지 못했습니다.

 

문제별 요약

문제 풀이 코딩 비고
A (D?, - )    
B (D4~5, 2:51, +) leo020630 leo020630 구현이 복잡한 Bit DP 문제이다. 체감상 꽤 어려웠는데 이런 류의 문제가 베트남에서는 웰노운 토픽인지 생각보다 많이 풀렸다.
C (G4~5, 0:08, +) slah007 slah007 \((N!)^M * (M!)^N\)
D (G2~3, 0:32, +) slah007 slah007 간단한 Constructive 문제인 것 같다.
E (?, - )     문제만 보면 그냥 쉬운 애드혹이지만 아무도 풀지 못했다. 풀이가 궁금한 문제 1
F (S2, 0:10, +1) leo020630 leo020630 컨셉에 충실한 케이스워크 문제이다. 제한이 나름 친절해 생각하기 편했다.
G (S5, 0:12, +) leo020630 leo020630 셋에서 가장 쉬운 문제이다. 코포 A 감성으로 브루트포스도 허용되는 제한인 것이 인상깊었다.
H (D3~4?, - )     꽤 오래 봤지만 핵심적인 관찰을 하지 못 한 것 같다. 풀이가 궁금한 문제 2
I (D2~3?, - )     전통적으로 나오는 다항식 문제이다. 이번 년도에는 FPS에 대한 깊은 지식이 조금 불필요한 대신 수학적인 고찰 난이도가 높게 출제되었다. 대회 종료 후 Hyperbolic 선배와 토론한 끝에 풀이를 발견하였다.
J (D4?, - )     재미있는 그래프 문제이다. 발상은 어렵지 않지만, 구현 방법과 특히 역추적이 어려워서 끝까지 마무리하지 못했다. 풀이가 궁금한 문제 3
K (P1~2, 1:47, +2) kwoncycle kwoncycle 수학적인 관찰을 요하는 문제이다. 시간 제한이 조금 널널해 잘만 짜면 됐다고 한다.
L (G2~3, 0:53, +) slah007 slah007 어려워 보이지만 물리적인 직관이 있다면 답을 쉽게 유추할 수 있다.
M (P1~2, 0:46, +) kwoncycle kwoncycle 백준에 비슷한 문제가 있다고 한다. kwoncycle이 잘 풀어주었다.

 

3일차 (후반)

 

대회 후에는 무려 5시간이나 공백이 있었는데, 한국처럼 이 행사가 ICPC 리저널과 국내 최대 규모의 프로그래밍 대회를 겸해 국내 팀들을 위한 자리가 있는 듯 했습니다. 물론 해외 팀들에게는 해당되지 않는 사항이라 관광을 보내줬는데, 배도 고프고 크게 볼 것은 없어서 빠르게 마친 후 편안한 카페에서 시간을 때웠습니다.

 

이후 시상식이 진행되었습니다. 베트남 리저널은 최대한 WF의 환경을 구현해 스코어보드 리솔버도 같은 것으로 쓰고, 메달 역시 학교 순위를 기준으로 Gold / Silver / Bronze를 각각 4개씩 주었습니다. 저희는 아주 운이 나쁘지만 않으면 은메달은 안전한 상황이라 처음에는 편안한 마음으로 관전했는데, 295분 뒤에 J를 맞춘 팀만 3팀이 생기면서 원치 않던 긴장감 속에서 스코어보드를 지켜봤습니다. 다행히도 페널티가 매우 적은 덕분에 학교 7등, 전체 12등으로 Silver Medal을 받을 수 있었습니다. 실물 메달을 줘서 기분이 조금 더 좋았습니다. 이외에도 프리즈 이후에 B를 해결한 NMK 팀이 Bronze Medal을 받았습니다. 축하합니다~

 

목표 달?성

 

은상은 받아본 적이 없었기 때문에 아무튼 예선 후기에 적은 목표를 달성할 수 있었습니다. J를 풀었으면 금상이라 좀 아쉽긴 했지만 APAC나 WF에서 받기 위해 남겨두었다고 생각하기로 했습니다.

 

대회 이후에는 주최측에서 준비한 저녁식사를 먹고 빠르게 공항으로 향했습니다. 이후에는 이렇다 할 여유도 없이 학교로 돌아왔고, 바로 기말고사 기간이었기에 다들 학기 마무리 준비에 들어갔습니다.

 

대회 후기

모로 가도 플레이오프만 가면 된다.. 이렇게 저희 팀은 극적인 부활에 성공했습니다. 사실 2024 WF가 너무 늦게 끝나고, 새 팀원인 slah007 선배 자체도 2학기 시작과 동시에 전역해서 팀이라고 느낄 시간 자체가 많이 없었는데 이렇게 고난과 역경을 한 번 겪으니 오히려 장기적으로 더 단단해졌다는 생각입니다. 말이야 이렇게 하지만 서울 리저널과 하노이 리저널 사이 2주 동안에는 팀원 모두 정말 신체적/정신적으로 힘든 시간을 보냈기에 이렇게나마 잘 풀린 것에 큰 감사를 느끼고 있습니다.

 

Asia Pacific 지역의 리저널 대회가 모두 끝난 지금 되돌아보면, 올해는 유독 플레이오프 티켓 따기가 쉽지 않았던 듯 합니다. 5개의 리저널에서 3개의 우승 대학이 나와 APAC에 참가할 수 있는 학교 수 자체도 줄어들었고, 특히 이로 인해 외침에 나선 한국 팀들이 시드 상으로 큰 손해를 보았습니다. (다들 잘 풀려서 싱가포르에서 뵐 수 있으면 좋겠습니다)

 

그럼에도 불구하고, 일정/금전적인 면만 해결된다면 해외 리저널에 참여하는 것은 개인적으로 추천하는 경험입니다. 진지하게 WF 진출을 노리는 팀이라면 언제 어디서 변수가 생길지 모르니 보험을 드는 것이라 좋고, APAC 진출 정도가 목표인 팀들에게도 타이완/자카르타 리저널은 티켓 획득을 위한 매력적인 선택지입니다. 플레이오프와 별개로도 서울 리저널에서 하기 힘든 여러 경험을 할 수 있으니 추후 ICPC에 참가하시는 팀들은 꼭 한 번 도전해보셨으면 좋겠습니다. 플레이오프 자체도 그렇고 이러한 문화 자체가 코로나 이슈가 완전히 해결된 지금에서야 다시 활성화된 것이라 이전 세대 분들은 많이들 부러워하시는 것 같습니다.

 

리저널 일정이 예상보다 늦게 끝나는 바람에 저희 팀의 다음 대회는 불과 두 달 정도 남은 2025 APAC가 되었습니다. 정말 힘들게 얻었고, 모두가 마지막이라고 생각하는 기회인 만큼 쉽게 놓치지 않을 생각입니다.

 

저희가 걱정 없이 다녀올 수 있도록 배려해주신 교수님들, 1년간 팀 연습 함께 도와주신 팀 & 선배들, 특히 같은 학교의 Con Forza 팀에게 다시금 감사의 말씀을 전합니다. 선배 두 분은 마무리 잘 하시고, 기회가 더 남은 minsung05는 내년에 다른 후배들과 함께 더 잘할 수 있기를 바랍니다. 두 팀원에 대해서는 아직 크게 감사하지 않기 때문에 마지막까지 간 이후로 말을 아끼겠습니다.

 

싱가포르에서 뵙겠습니다.

 

같이 읽으면 좋은 글

 

kwoncycle의 후기: https://kwoncycle.tistory.com/22

 

오늘부로 ICPC Hanoi Regional 지지를 철회한다.

오늘부로 Hanoi Regional 지지를 철회한다.오늘부터 지지관계에서 벗어나.Hanoi Regional과 나는 한몸으로 일체가 된다.Hanoi Regional에 대한 공격은 나에 대한 공격으로 간주한다.  세상에 70억 명의 Han

kwoncycle.tistory.com

 

한양대 NMK 팀 gggkik님의 후기 (공개 일자 미정): https://gggkik.tistory.com/

 

읽어주셔서 감사합니다.