처음으로  l  로그인  l  회원가입  l  아이디/비밀번호찾기  l  2023.5.31 (수)
 http://www.comtimes.kr/news/828
발행일: 2016/11/21  유경빈
ACM-ICPC 교내대회 우승팀 'Buzzer Beater' 인터뷰
BuzzerBeater 황준영, 최윤호, 서영선 학우 인터뷰

ACM 국제대학생 프로그래밍대회

 

  2016 10 1일 토요일, ACM에서 후원하는 국제 대학생 프로그래밍 대회(ACM International Collegiate Programming Contest, ACM-ICPC)의 인터넷 예선이 숭실대학교에서 개최되었습니다. ACM-ICPC 예선전은 각 대학교에서 동시에 예선 문제를 온라인으로 풀고, 참가자 전체의 결과로 등수를 매겨 본선에 진출할 기회를 얻을 수 있습니다.

 

컴퓨터 과학 분야의 가장 권위있는 학회인 ACM이 주관하는 만큼 대회 역시 큰 규모로 진행이 되었습니다. 우리학교에서도 예선전을 교내 대회로 편성하여, 상장 및 상금을 준비하는 등 ACM-ICPC에 참가하는 학생들을 위한 지원을 아끼지 않고 있습니다. 그런 교내 대회에서 당당히 1등을 차지한 컴퓨터학부 BuzzerBeater팀을 컴타임즈에서 만나보았습니다.

 

교내대회 1등 'BuzzerBeater'팀의 서영선(14), 황준영(12), 최윤호(13) 학우

 

Q. 안녕하세요, 먼저 BuzzerBeater팀원분들 자기소개 부탁 드릴게요.

 

  A. 안녕하세요. 숭실대학교 ACM-ICPC 교내대회에서 1등을 수상한  'BuzzerBeater'입니다.  저희 팀원으로는 4학년 재학중인 12학번 황준영, 13학번 최윤호 학우가 있고 3학년 재학중인 서영선 학우가 있습니다. 팀원 모두 컴퓨터학부로, 소모임 SCCC에서 ACM-IPCP 대회를 위해 꾸준히 공부하다가 참가하게 되었습니다. 

 

 

Q. ACM-ICPC 이라는 대회에 대해서 잘 모르는 학우 분들도 있을 텐데, 어떤 대회인가요?

 

  A. ACM-ICPC는 대학생을 대상으로 하는 프로그래밍 경진대회인데, 간단히 말하자면 알고리즘 문제를 푸는 대회에요. 3 1팀으로 대회에 참가를 해서 팀끼리 경쟁하며 문제를 푸는 방식으로 진행됩니다. 보통 9월말에서 10월 초쯤에 인터넷을 통해서 예선전이 이루어지고, 그 예선에서 좋은 성적을 받은 팀들끼리 11월에 대전에서 열리는 본선에서 만나게 됩니다.

 

인터넷 예선은 일반적으로 학교에 예선 참가자들이 한번에 모여서 교수님 감독 하에 진행을 하게 되는데요. 본선 진출은 특정 인원이 정해진 것은 아니라 대학 내 순위나 푼 문제 수에 따라 달라집니다학교 성적에 따라서 달라지기도 하는데, 대략적으로는 전국에 80등 안에 들으면 본선에 가볼 수 있다는 가능성이 있습니다. 우리학교는 이번 년도에 4등까지 본선에 진출하게 되었습니다. 

 

 

Q. 그렇다면 대전에서 열리는 본선은 한국 대표를 선발하는 건가요?

 

  A. 아니요. 정확히는 표현하자면 한국대표가 아닌 아시아의 특정 지역의 대표를 선발하게 됩니다. 대전 대회 참가 대다수가 우리나라 학생들이긴 했지만 중국이나 일본 학생들도 많이 옵니다. 중국은 우리 지역이 아닌데 이벤트 경기삼아 참가하고, 일본이나 동남아시아 나라의 팀들도 참가해요. 이렇게 아시아 내에서도 지역적으로 대표를 선발하고,성적이 괜찮으면 세계대회인 ACM-ICPC 월드 파이널을 참가할 수가 있습니다.

 

 

Q. 그 과정에서 학교의 지원은 무엇이 있나요?

 

  A. 대회 예선 같은 경우 우리학교는 IT단과 대학에서 교내대회를 겸해서 진행합니다. 교내 상금도 주어지고, 본선에 진출한 팀들에게 대전으로 가는 교통비뿐만 아니라 숙소와 식사와 같은 모든 경비를 지원해주고 있습니다. 그리고, ACM-ICPC는 한 사람이 두 개 지역의 대회에 참가할 수가 있는데, 학교에서는 11월에 한국에서 열렸던 본선 말고도 12월 초에 베트남의 나트랑이라는 지역에서 열리는 대회에 참가하러 가는 경비 역시 지원을 해준다고 합니다.

 

 

Q. 제가 알던 것보다 훨씬 규모가 큰 대회인 것 같은데, 이런 대회에 참가하는데 세 분이 팀을 구성하게 된 계기가 있나요?

 

  A. 영선 : 저희끼리 친한것도 있었고, 최윤호 학우가 먼저 참가하자고 제안했습니다. 저는 작년에 ACM-ICPC대회에서 동상을 수상한 경험이 있어서 그 결과에 만족하고 대회에 다시 참가할 생각이 없었는데, 최윤호 학우의 제안으로 다시 참여해보고자 하는 마음이 생겼습니다. 둘이서 공부를 하고 있었는데, 같은 소모임 활동을 하고있는 황준영 학우가 실력이 뛰어나다는 이야기를 듣고 셋이 공부하게 되며 팀을 꾸리게 되었습니다.

 

 

Q.  팀 명인 BuzzerBeater는 어떻게 정해졌나요?

 

  A. 'BuzzerBeater' 라는게, 농구 경기에서 게임이 끝나기 전에 공을 던지면 버저가 울린 뒤에 들어간 슛도 득점으로 인정하는 것을 의미해요. 이처럼 '끝나기 직전에 극적인 결과를 내보자!' 라는 뜻으로 팀 명을 정했습니다. ACM-ICPC대회에서 특징 중 하나가, 끝나기 한 시간에서 한 시간 반 전에 참가 팀들의 점수를 확인할 수 있는 스코어보드 화면을 정지시킵니다그럼 그 사이 동안 어떤 팀이 얼마나 풀었는지 서로 모르게 되버리는 거죠. 제출 했는지까지만 알고. 제출한 문제를 맞춰서 득점했는지 공개가 안되는데, 그사이에 문제를 풀어서 순위를 올려보자는 그런 의미도 있습니다. 하지만 아쉽게도 이번 대회에서 그 시간 동안 문제를 풀지 못했네요.

 

 

Q. 대회준비는 어떻게 진행 했나요? 준비 기간이나 방법 같은면에서요.

 

  A. 영선 : 저랑 최윤호 학우는 작년 12월 말부터 팀을 이뤄서 공부를 시작했어요. 대회 준비라기 보단 그냥 둘이 같이 알고리즘 문제에 대해 공부했습니다. 황준영 학우의 경우는 5월 말 정도에 합류를 했습니다. 9월까지 계속 같이 문제를 풀고 여러 온라인 대회에도 참가해보고 하면서 실력을 쌓았던 것 같습니다.

 

 

Q. 준비하면서 어려웠던 점이 있나요? 그런걸 어떻게 해결하셨나요?

 

  A. 문제를 해결하는 대회이다보니, 문제를 못풀어나가는 것이 가장 어려웠던 것 같습니다. 저희 팀의 약점이라고 생각 했던게, 초반에 빠르게 치고 나가는 것에 비해 후반의 난이도 높은 문제를 별로 못 푸는 거였어요. 계속 대회를 나가도 후반에는 별로 힘을 못쓰니까 고득점을 노리기 힘들었습니다. 그런 면에서 좀 더 노력을 해서 후반까지 문제를 풀어보자는 식으로 공부를 해왔는데, 아쉽게도 대전대회에서는 끝까지 해내지 못했으니까 결국 해결을 못 한 것 같아요. 많이 아쉬움이 남습니다.

 

다른 어려움으로는 팀원들의 의사소통 문제도 있었네요. 알고리즘 문제의 내용을 팀원들에게 잘 설명해줘야 풀 수 있는데, 거기서 커뮤니케이션 능력이 많이 부족하다고 생각했습니다. 팀원들끼리 서로 안 맞았던 건 아니지만말해주는 스타일을 통일하는 등의 방식으로 상대방이 빠르게 이해할 수 있게끔 노력을 했던 것 같아요.

 

교내대회 상장을 수상하는 모습

 

Q. 대회 얘기를 듣는 것도 정말 재미있는데, 사실 요즘 알고리즘의 중요성에 대해 많이들 신경 쓰잖아요. 다들 어떻게 공부하는 게 좋은 지에 대해서는 알겠지만 정작 잘하는 사람들이 어떻게 공부하는 지에 대해 알고 싶어하는 학우들도 많다고 해요. 그런 학우 분들을 위해서 추천 해 주고 싶은 자료가 있나요?

 

  A. 일단 국내에서 많이 사용하는 '백준 온라인저지'로 시작하는게 좋을 것 같습니다. 아무래도 가장 대중적이고 국내 최대 규모의 사이트이니까요. 그 외에 '알고스팟'이나 '더블릿', 해외로는 'UVA'같은 사이트도 추천합니다. 책 같은 경우는 국내 서적으로는 '알고리즘 문제 해결 전략'이라는 책이 가장 유명합니다. 우리나라에서는 이 책이 알고리즘 공부에 있어서 바이블이라고 불릴만큼 가장 기초적이라고 할 수 있어요. 영문 번역이 수월하시다면 해외 서적들도 좋은 서적이 많이 있으니 추천해드립니다.

 

 저희는 백준과 UVA 모두 이용하는 편이기는 한데, 백준 온라인저지가 문제 수가 많고 커뮤니티가 가장 활성화되어 있어서 더 자주 사용하고 있어요. 두 번째로는 '코드 포스'라는 사이트도 사용하는데, 이 사이트는 정기적으로 대회를 개최합니다. 온라인을 통해 두 시간 정도에 걸쳐서 진행되는데 그 대회에 자주 참여해요. 다른 사람들이 문제 푸는 것도 볼 수 있고, 풀이도 올라와서 알고리즘 공부를 하는데 도움이 많이 되었습니다.

 

 

Q. 알고리즘 문제를 처음 접하는 학우들은 어떻게 공부를 시작하는 것이 좋을까요?

 

  A. 일단 책은 커리큘럼이 있는 책을 바탕으로 공부를 하는 게 가장 좋습니다. 왜냐하면 처음에 어떤 것부터 시작해야 할 지 모르기 때문에 체계적으로 구조나 단계가 잡혀있는 책으로 공부를 시작 하는 게 좋다고 할 수 있죠. 하지만 국내 책의 경우 난이도가 상당한 문제들이 많아 처음 접하시는 분들은 많이 어려우실 수 있습니다. 그래서 책으로 공부하면서 알고리즘 문제 사이트를 이용하는 것이 가장 좋을 것 같아요. 백준 사이트의 경우 질문을 남길 수 있어 책만으로는 이해가 안 가는 부분들을 질문할 수 있거든요. 백준 사이트를 이용하는 실력 있으신 분들이 답변을 자주 달아주셔서 모르는 것을 질문하면서 공부하기 좋은 것 같습니다.

 

 

Q. ACM-ICPC 대회를 위해 SCCC소모임 내부에서 스터디를 진행한다는 말을 들었는데, 어떤 식으로 진행이 되나요?

 

  A. 학기 초반에는 신입생이 들어오거나 배우려는 사람이 있으면 선배 한 두분이 강의하듯이 알고리즘을 다 가르쳐주는 방식으로 진행했습니다. 학기 중에는 주기적으로 모이기가 힘드니까 며칠에 한 개씩 알고리즘 문제를 공유해 각자 문제를 풀어오는 식으로 스터디를 합니다. 여름방학이 되면 팀이 정해졌으니 소모임에서 소규모 대회를 열어서 모의 대회를 진행하고 있습니다.

 

 

인터뷰 중인 유경빈 기자와 'BuzzerBeater'팀
 

 

Q. 해외 대회도 준비하시느라 바쁘실 텐데 인터뷰에 잘 답변해주셔서 정말 감사합니다. 마지막으로 기사를 읽을 분들에게 전하고 싶은 말이 있나요?

 

  A. 영선 : ACM-ICPC에 관심이 있거나, 알고리즘 문제를 풀고싶은 학우들이 있다면, 꼭 SCCC에 들어와 함께 공부했으면 좋겠습니다. 그리고 11월 25일에  SCCC에서 ACM형식의 대회를 여는데많이 참여해주셨으면 합니다. 1학년과 재학생들을 나누어서 시상을 할 예정이고, 문제도 다들 풀 수 있게 쉬운 문제들로 구성을 할 예정이니 걱정마시고 도전해주세요!

준영 : 알고리즘 공부나 대회 준비는 취업을 준비하는 3,4학년때 하면 부담이 많이 된다고 생각해요. 알고리즘 공부는 아무래도 시간을 많이 쏟아야 하기 때문에 1,2학년때부터 공부를 시작해 대회 준비를 하는 것을 추천합니다1학년 학우들이 모르는 게 많다고 하더라도 관심이 있다면 SCCC에 지원해 같이 공부했으면 좋겠습니다. 처음부터 잘 하는 사람은 드물잖아요!

윤호 : 1,2학년때 공부 하는 게 좋다는 의견에 대해 좀 더 덧붙여 이야기 해 보겠습니다. 저는 알고리즘 공부를 4학년때 시작한 케이스인데, 굉장히 힘들었고 리스크도 컸다고 생각합니다. 저학년 때는 분명 다른 학년때 보다 시간도 많고 리스크도 적기 때문에 더 좋은 결과가 있을 거에요. 특히 학과 공부에 있어서도 1,2학년 때 알고리즘을 확실히 공부해 놓으면, 그 이후 수월히 코딩 할 수 있는 것 같습니다. 그리고 알고리즘 공부를 하다 보면 다른 사람이 작성한 코드를 많이 읽게 되고, 코드 한 줄 한 줄이 어떤 의미를 가지게 되는지 계속 생각하다보니 다른 사람의 코드를 봤을 때 더 빨리 이해가 되는것 같습니다. 여러분, 가급적 빨리 시작하세요! 

 

 

 

 

사진 출처 : ACM-ICPC 한국 홈페이지 (http://icpckorea.org/)

 

기사작성 : 유경빈 기자(nim950313@gmail.com)

 

사진촬영 : 유경빈 기자(nim950313@gmail.com)

심찬규 기자(sck3578@naver.com)

 

편집 : 박원호 미디어팀장(juvenpak99@naver.com)

이호영 편집팀장(hyl4237@gmail.com)

김민정 국장(m950806@naver.com)