ICPC와 한국

ICPC 와 한국팀의 도전기

한국팀이 2021년에 열린 ICPC World Finals Moscow에서 놀라운 성과를 보여주었다. 역대 최고 성적인 2등을 기록하면서 금메달을 목에 걸었다. ICPC 기록을 누군가 정리한 글이 따로 없어서 한번 인터넷에서 자료를 모아서 정리해보았다.

ICPC는 무엇인가?

과거 ACM-ICPC 불렸던 ICPC(International Collegiate Programming Contest, 국제대학생프로그래밍대회)는 1970년 텍사스에서 UPE Computer Science Honor Society가 주최한 경진대회에서 그 아이디어를 얻어 1977년 ACM의 주최로 첫 대회를 개최하였다. 이후 2017년까지 ACM의 주최로 ACM-ICPC로 불리다 현재는 ICPC로 이름을 바꾸었다. 전 세계 각지의 우수한 대학들의 우수한 인재들의 두뇌 경진 대회라 할 수 있다.

알고리즘을 공부하는 대학생들의 최종 목표중 하나가 이 대회에서 수상, 결선(World Finals) 진출, 지역 대회(Regional)에서 높은 순위를 기록하는 것이다. 이 대회 결선에서 상을 받는 것은 프로그래머로서의 최고의 영예중 하나이다.

ICPC의 역사

1977~1996 ACM-ICPC 우승 대학

1977년부터 시작한 이 대회는 처음에는 주로 미국과 캐나다 대학이 참여했고 팀원 수도 3명이 아닌 4명이었다. 우승 대학도 주로 미국에 몰려있는 것을 알 수 있다. 그러나 1997년부터 IBM의 후원을 받으면서 대회가 질적, 양적으로 크게 성장하게 된다.

1997년부터 IBM의 후원을 받기 시작하는데 이 후로 20년동안 2000% 이상의 참여가 늘어났다. 한국 팀 또한 비슷한 시기인 2000년 부터 지역 대회를열기 시작했다. 그래프에 나오듯이 2019년 대회에는 58,963명의 학생이 참여를 했고, 3406개의 대학, 104개의 나라에서 참여를 했다.

참가자 수가 크게 늘어난 2000년대 부터는 오직 러시아, 중국, 폴란드의 대학만이 우승을 차지했다.

ICPC World Finals에 진출하는 법

ICPC 대회에서는 대학을 대표하는 3명의 학생이 여러 단계의 지역 대회(Regional, 리저널)를 통과해야 최종 대회인 World Finals(WF)에 진출할 수 있다. 한국의 대학생은 주로 서울 리저널에 참여하게 되며, 서울 리저널에서 우수한 성적을 거둔 2개 정도의 대학의 팀이 월드 파이널에 진출하게 된다. 1등과 2등이 같은 A 대학에 나왔어도 대학의 대표는 한 팀만이 될 수 있으므로 A 대학을 제외한 가장 높은 성적을 기록한 대학의 최고 팀에게 WF 티켓(진출권)이 돌아가게 된다. 리저널을 한 해에 다음 해에 일반적으로 WF를 치룬다.

ICPC에서는 지역을 이렇게 나누어서 관리하고, 한국은 아시아퍼시픽(보라색)에 해당한다.

각 리저널은 주로 개최한 나라의 대학들이 많이 참여하지만 다른 나라의 리저널에 한국 팀이 참여하거나 한국 리저널에 다른 나라 팀이 참여하기도 한다. 그런 것들을 고려해 각 리저널의 가중치를 매겨서 WF 티켓을 준다. 한국 대회는 매년 바뀌지만 2장 이상의 티켓이 배분된다. (2005년까지는 1장이었다고 한다.)

자세한 WF 티켓 규정은 규정이 자주 바뀌어 ICPC 아시아 지역을 관리하는 사람의 블로그에서 확인하는 것이 가장 정확하다.

역대 한국 Regional

ICPC Korea

한국은 2000년도 부터 대회를 주최했고 자세한 기록은 위 사이트에서 확인할 수 있으나 예전 기록은 말소되었고 찾기 어려운 경우가 많다.

연도 우승학교
2000 KAIST
2001 서울대학교
2002 KAIST
2003 KAIST
2004 서울대학교
2005 상해교통대학교
2006 서울대학교
2007 서울대학교
2008 서울대학교
2009 KAIST
2010 KAIST
2011 서울대학교
2012 KAIST
2013 동경대학교
2014 서울대학교
2015 KAIST
2016 서울대학교
2017 서울대학교
2018 서울대학교
2019 서울대학교
2020 서울대학교
2021 ???

해외 대학이 우승한 2005년과 2013년을 제외하고 서울대학교와 KAIST가 번갈아가면서 우승을 차지하고 있는 양상이다. 최근에는 5년 연속으로 서울대학교가 우승하며 압도적인 모습을 보여주었고 지난 2020년 대회에서는 1등부터 5등을 서울대학교가 모두 차지하기도 했다.

역대 한국의 World Finals

대만이나 중국같은 해외 리저널에서 티켓을 따 한국 리저널이 생기기전 1996년 부터 월드 파이널에 한국 팀이 진출하였다.

연도 우승학교
1996 KAIST
1997 KAIST
1999 KAIST
2001 서울대학교(은), 연세대학교, KAIST
2002 서울대학교, 이화여자대학교
2003 연세대학교, KAIST
2004 서울대학교, 연세대학교, KAIST
2005 서울대학교, 연세대학교, ICU
2006 서울대학교, KAIST, ICU
2007 서울대학교, KAIST
2008 서울대학교, ICU
2009 서울대학교, KAIST
2010 서강대학교, 서울대학교, KAIST
2011 서울대학교, KAIST
2012 고려대학교, 서울대학교
2013 성균관대학교, KAIST
2014 고려대학교, 성균관대학교
2015 고려대학교(동, 11위), 서울대학교, KAIST
2016 고려대학교, KAIST
2017 서울대학교(금, 3위), KAIST(동, 9위)
2018 서울대학교(은, 5위), KAIST, UNIST
2019 서울대학교(은, 7위), KAIST
2020 경북대학교, 고려대학교, 서강대학교, 서울대학교(금, 2위), 연세대학교, UNIST
2021 ???

특정대학교만 많이 참여하는 것을 볼 수 있다. 그리고 한 사람당 ICPC WF는 최대 2번만 진출 가능하다.

2020 ICPC World Finals

2020 ICPC World Finals는 2020년에 열리지 못하였고 2021년에 열리게 되었다. 그러면서 참가 팀에도 변화가 생겼는데 연도가 바뀌면서 못참가하게 되는 팀도 생겼고, 코로나 백신 접종이 힘든 나라들이 참가가 어려워지면서 Wildcard slot이 생겨 서강대, UNIST, 경북대 등의 한국팀이 수혜를 보게되어서 역대 최대 참가가 이루어졌다! (반면 KAIST는 불참하게 되었다.)

경기 진행 방식도 달라졌는데 원래는 3인이 오직 1대의 컴퓨터를 통해 문제 해결을 해야했던 방면 이번 WF에서는 칸막이로 구분된 공간에서 각자 컴퓨터로 코딩 하는 3인 3컴퓨터 WF가 되었고 문제 수도 평소보다 많이 늘었다.

여러가지 사실들

  • 서울대: ainta는 유일한 한국 ICPC WF 금메달 2회 수상이다. 그밖에 많은 기록을 서울대가 보유하고 있어 다 적기에는 여백이 부족하다.
  • KAIST: 한국에서 역대 최다 WF 참여 학교는 KAIST다
  • 연세대: 01, 03, 04, 05년도 진출 이후 15년만에 2020년 WF에 진출하였다.
  • 고려대: 사이버국방학과 학생들의 신분때문에 WF 티켓이 있음에도 못 간적이 있다.
  • 최초의 메달: 2015년에 딴 고려대의 동메달이 최초의 메달로 알려져 있다. 그러나 메달은 04년부터 생겼고 01년도의 서울대의 기록도 ICPC에서는 메달로 인정하는것 같다.
  • 서강대: 백준 온라인 저지를 만든 baekjoon님 이후로 10년만에 solved.ac를 만든 shiftpsh님이 진출하였다.
  • 성균관대: 10718번
  • UNIST: 카자흐스탄 유학생 팀이 18년에 진출하였다. 이번 진출도 확인은 안되었지만 유학생계열로 알고 있다.
  • 이화여대: 리저널 6등, Best Women Team 자격으로 WF에 진출했다. 이는 세계최초 여성 3인팀 WF진출이었다.
  • 상해교통대: 한국 2005년 리저널 우승은 아직까지 유일한 여성 3인팀의 우승이기도 하며 첫번째로 한국팀이 우승못한 한국 리저널이다.
  • 펀잡대: 파키스탄의 펀잡대학교는 2007년 대회에서 패킷 스니핑으로 채점 데이터를 빼와 1등을 달리다가 적발되어 실격되어 학생들은 ICPC에서 영구추방 당하고 해당 대학은 2년 출전 금지를 먹은 흑역사가 있다.

참고자료

  • https://soyoja.com/91

  • https://www.koreascience.or.kr/article/JAKO200725522697398.pdf

  • https://en.wikipedia.org/wiki/International_Collegiate_Programming_Contest