본문 바로가기

Computer Science/Competition

ICPC 2020 Seoul Regional 후기

2020 ICPC 서울리저널 스코어보드 사진이다. 나의 팀 KAIMARU는 10등이다.

이채준, 신민철 님과 함께 참가한 대학생 프로그래밍 경시대회에서 8솔브 / 1303분으로 전체 10등을 했고, 학내에서는 2등을 했다. 좋았던 점과 아쉬운 점 모두 있지만, 팀원들에게 수고했다는 말을 해주고 싶고, 우리 팀에 미래가 있다는 사실을 확인했다는 점이 너무나 좋았다.

 

사실 우리 팀은 인터넷 예선을 앞두고 팀 연습 1번, 인터넷 예선 이후에 팀 연습을 아예 안 할 정도로 별 준비 없이 봤음에도 불구하고, 전체 팀들 가운데 10등을 차지한 것은 사실 꽤나 잘한 성과라고 생각한다. 하지만, 인터넷 예선에서 운 좋게 8등을 한 덕택에 (객관적 실력상 진출이 힘듬이 명백한) 세계 대회에 갈 수 있다는 행복 회로를 돌리던 것은 썩 좋게 작용하지만은 않은 것 같다.

 

아무튼, 별 준비 없이 전체 10등은 나쁘지 않은 성과라 생각하고, KAIST 학내 경쟁이 향후 2-3년 간 심할거라 판단되는 만큼, 나는 그 동안 국방의 의무를 수행하고 와서 졸업 전에 1~2번 정도 세계 대회 진출 기회를 노려볼 생각이다.

대회 중

나는 총 B, E, 

  • 8분: 내가 B번 문제를 읽고 짜서 AC를 받았다.
  • 34분: E번 문제를 뒤늦게 읽고, 급하게 짜서 AC를 받았다.
  • 44분: 이채준님이 한 번 틀린 끝에 실수를 고치고 C번 AC를 받았다.
  • 107분: 그간 G번에 제출한 틀린 풀이 들에서 고칠 점을 찾고, 신민철님이 잘 구현해 AC를 받았다.
  • 121분: 내가 J번 문제를 읽고, 가우스 소거법을 대충 구현했더니 AC를 받았다.
  • 131분: 그간 내가 H번을 열심히 틀리던 원인이 fft 코드 자체의 문제가 아닌, 배열 크기를 너무 작게 잡았기 때문임을 깨닫고, 코드를 수정해 AC를 받았다. 이 시점에서 나는 패널티를 보고 세계 대회에 진출하기 힘듦을 자각했고, 맥주를 마시다가 낮잠을 잤다.
  • 265분: 간단한 구현 문제인 A번에서 오류의 원인을 찾고, 이채준님이 AC를 받았다.
  • 293분: 그간 I번의 제출에서 많은 오류가 있었으나, 이채준님이 찾은 출력 과정에서의 오류와 내가 찾은 Fenwick tree의 오류를 수정하여, 신민철님이 최종적으로 AC를 받아냈다.

사실, 우리 팀에서 기대하는 나의 역할은

  • 중간 이하 난이도의 3~4문제를 틀린 제출 없이 빠르고 정확하게 밀고,
  • 플로우 문제나 FFT 문제가 있으면 밀고,
  • 다른 팀원들이 적당한 난이도의 문제를 해결하는 동안 어려운 수학 문제 중 하나를 해결하는 역할이었다.

하지만, 잠을 자지 못해 매우 컨디션이 난조인 상황이라 초반에 푼 문제들을 빠르게 읽지도 못했고, 사소한 실수를 담은 코드를 많이 제출하며 패널티를 많이 쌓아버렸다.

 

이 과정에서 개인적으로 정말 많이 힘들었고, 멘탈에 큰 내상을 입었다. 그래도 대회 중간에 술 한 잔 하고, 5~10분 정도 쪽잠도 잔 것과 대회 마치고 정말 다량의 술을 마신게 멘탈 회복에 많은 도움을 준 것 같다.

대회 후

고려대학교 팀과 KAIST의 다른 팀과 함께 저녁 식사를 했다. 술도 마셨는데, 간만에 정말 hard한 술 팟이었다. 같이 식사를 한 두 팀은 세계 대회 진출이 꽤나 높은 확률로 가능할 전망인 만큼, 진심으로 축하해주었다.

 

첫 ICPC를 치면서 굉장히 많은 것을 배우고 느낀 것 같다. 우리도 언젠가는 세계 대회를 갈 수 있기를...

 

덧) 매우 높은 확률로 세계 대회에 진출할 것으로 예상되는 김홍녕, 이재웅, 최재민님, 매우 축하드립니다! 내년 런 회장 수고하시죠 ㅋ