ADVERTISEMENT

[열려라공부] 한국정보올림피아드 준비 실전 노하우

중앙일보

입력

업데이트

지면보기

03면

김재홍군이 정보올림피아드 준비법에 대해 설명하고 있다. 김군은 “실전에서 실수를 줄이고 상위 수준의 기출 문제로 연습하면 상위권에 입상할 수 있다”고 말했다. [사진=안윤수 기자]

수학적 사고력과 컴퓨터 프로그래밍 능력을 평가하는 한국정보올림피아드(KOI)에 초·중·고생들의 관심이 높아지고 있다. 과학고나 대학이 입상 실적을 ‘정보화 특기생’ 전형자료로 활용하는 데다 시·도 교육청들이 정보과학 영재교육과정을 신설하고 있기 때문이다. 지난해 KOI 경시 부문에서 대상을 수상한 김재홍(서울과학고 2)군에게 실전 대비법에 대해 들었다.

◇한국정보올림피아드(KOI)는?=초·중·고생을 대상으로 경시와 공모 두 분야로 치러진다. 경시 부문은 지역 예선·본선·전국대회 순으로 치러지며 상위권 입상자에겐 국제정보올림피아드(IOI) 출전 후보 자격이 주어진다. 공모 부문은 시·도교육청이 추천하는 소프트웨어 개발 작품을 심사하는데 상위권 입상자에겐 국제과학기술경진대회(Intel ISEF) 참가 자격을 준다.

경시 분야는 크게 수학과 컴퓨터 프로그래밍 능력을 평가한다. 지역예선인 1차 대회에선 필기시험을 치른다. 문제는 알고리즘 50%, 창의수학 30%(수리퀴즈 10%, 관련 수학 20%), 자료 구조 20%로 구성한다.

실기시험을 보는 2, 3차 대회에서는 알고리즘 문제를 낸다. 출제 내용은 정수론·최단경로·퇴각검색·분할정복·동적계획법·기하·문자열·최소비용 신장트리·욕심쟁이 기법·그래프 이론·최대유량·위상정렬 등 다양하다. 지역본선인 2차에서 ‘비주얼 베이직’이나 ‘비주얼 C++’ 분야의 실기문제 5개를 풀어야 한다. 3차 전국대회에선 문제 3개를 풀어야 한다. 세 번째 문제가 가장 어렵고 배점도 높은데 주로 동적계획법·기하·이진트리 등이 출제된다.

◇“수학적 사고력 키워야”=“기출문제를 많이 푸는 것이 좋아요. 많이 풀기보다 쉽게 푸는 법을 익히고 이미 아는 풀이과정을 활용하는 훈련을 해야 합니다.”

김군은 컴퓨터 운용 지식보다 수학적 사고력이 더 중요하다고 강조한다. 대회가 논리적인 사고능력을 측정하는 데 중점을 두기 때문이다.

“프로그래밍은 사고력을 나타내는 도구일 뿐이에요. 입상하려면 과제 해결을 위한 효율적인 수학적 모델을 구성해내는 능력을 키워야 합니다.”

수학을 공부할 때는 문제를 컴퓨터 언어로 표현해 보거나, 컴퓨터로 푸는 방법을 고민해보는 훈련을 하면 많은 도움이 된다고 한다.

특히 초등부는 퇴각검색과 동적계획법에 대해, 중·고등부는 알고리즘에 대해 심도 있게 공부해야 한다는 것이 김군의 설명. 김군은 상위권에 입상하기 위해 KOI보다 한 단계 높은 수준인 IOI의 기출문제로 훈련해 보라고 제안했다. 베이징대의 정보올림피아드 사이트(http://acm.pku.edu.cn/JudgeOnline)나 한국정보문화진흥원 홈페이지(www.kado.or.kr), 알고리즘 사이트(www.koi4u.net) 등에서 유사한 문제와 출제 경향을 파악할 수 있다는 것.

◇“실수 줄이는 훈련해야”=김군은 실기시험에선 코딩이 1개만 틀려도 한 문제를 다 틀리므로 신중해야 한다고 조언했다.

“시험을 앞두고 더 수준 높은 해결방법을 찾기보다 이미 잘 알고 있는 방법을 활용하는 데 중점을 둬야 해요. 코딩 작업을 반복해 읽거나 다른 데이터를 프로그램에 넣어 오류를 줄여야 합니다.”

김군은 대회에 자주 출전해 실전 감각을 쌓으라고 권했다. 김군 역시 초등학생 때부터 해마다 빠지지 않고 정보올림피아드에 참가해온 결과 대상을 수상할 수 있었다고 설명했다.

“요즘엔 정형화된 문제보다 새로운 해결 방식을 요구하는 문제들이 종종 나와요. 기존 풀이 방법에 얽매이지 말고 자기만의 창의적인 해결 능력을 갖추는 것이 상위권 입상 비결입니다.”

글=박정식 기자, 사진=안윤수 기자

ADVERTISEMENT
ADVERTISEMENT