티스토리 뷰
프로그래밍에 관심을 가지고 있는 아이를 키우다보니 부모인 저도 정보올림피아드에 매년 관심을 가지게 되는 군요. 사실 필자의 경우에도 예전에 고등학교부터 컴퓨터를 배우기 시작했는데, 학교에서 당시 대통령배 컴퓨터 경진대회를 준비하는 과정에서 엉겁결에 컴퓨터를 접하게 된것이었습니다. MSX, FC-100등 8비트 컴퓨터에 BASIC으로 프로그래밍을 배웠지만 저에게는 신세계였죠. 그리고 그것이 인생을 바꾸어 놓았지만......
각설하고 올해 올림피아드 부터는 예년과는 다르게 변화된것이 많네요. 경시대회는 필기와 실기로 나누어 지는데 지역 예선에서는 실기는 하지 않고 필기만 한답니다. 즉 지역 예선에서 필기로 대상을 뽑고 실기는 바로 전국대회에서 치러지는 단순한 시스템으로 변화된 것이죠. 좋은 방향이라고 봅니다.
경시대회는 알고리즘과 프로그램 작성 능력을 겨루는 것이니 만큼 "프로그래밍"이 핵심입니다. 문제중에 수수께기 푸는 것과 같은 문제들이 있다고 아이들이 오해할 수 있는데 핵심은 "프로그래밍"입니다. 수수께기 푸는 것과 같은 문제들도 결국은 수학적 지식과 논리적 사고 능력에 바탕을 둔 알고리즘 구성력이나 분석력을 묻는 것이기에 이런 배경을 소화한 사람이 경시 대회에 도전하는 것이 맞습니다.
올해는 대회 주최측에서 자료도 풍부하게 만들어 놓고 교재도 잘 준비해 놓아서 준비하는 과정 자체가 좋은 학습 과정이 될것으로 기대가 됩니다.
우선은 https://www.digitalculture.or.kr/koi/StudyBook.do에서 무료 교재를 다운로드 받습니다. PDF 파일로압축되어 있으므로 압축을 해제하여 직접 읽거나 인쇄해서 차분하게 읽어가는 것이 중요합니다.
중급 교재의 목차는 아래와 같습니다.
- Ⅰ. 문제해결과 알고리즘을 위한 준비 단계
- 1. 무료 C언어 통합개발환경 기본 사용 방법 7
- 가. Ubuntu Linux && Code::Blocks 8
- 나. Windows && Orwell DevC++ 12
- 다. Mac OS X && Xcode 15
- 라. 파일입출력 기본 18
- 2. 정보과학과 문제 20
- 가. 계산 문제 20
- 나. 결정 문제 21
- 다. 최적화 문제 21
- 3. 알고리즘과 실행시간 측정 22
- 가. 알고리즘 22
- 나. 실행시간의 측정 23
- Ⅱ. 탐색기반 알고리즘의 설계
- 4. 탐색 37
- 가. 선형구조의 탐색 39
- 나. 비선형구조의 탐색 67
- 5. 전체탐색법 107
- 가. 선형구조와 비선형구조의 전체탐색 107
- 6. 탐색공간의 배제 254
- 가. 수학적 배제를 이용한 설계 254
- 나. 경험적 배제를 이용한 설계 280
고급 교재의 목차는 아래와 같습니다.
- Ⅰ. 관계기반 알고리즘의 설계
- 1. 수학적 귀납법과 점화식 7
- 가. 수학적 귀납법 7
- 나. 귀납법을 이용한 재귀함수의 설계 8
- 2. 동적표를 이용한 알고리즘 설계 71
- 가. 하향식 설계 76
- 나. 상향식 설계 79
- 3. 동적표를 이용한 중급 기법 199
- Ⅱ. 알고리즘 설계기법의 응용
- 4. 이분탐색을 활용한 설계기법 217
- 5. 자료구조를 활용한 알고리즘의 고속화 238
- Ⅲ. 전 세계적 온라인 대회 참가하기
- 6. USACO Online Competition 271
- 가. 가입 방법 272
- 나. 비밀번호 재설정하기 273
- 다. USACO Competition 274
- 라. USACO Competition 참가하기 275
- 마. USACO Competition 기출문제 풀어보기 278
- 7. Codeforces 282
- 가. Codeforces에 가입하기 282
- 나. 대회에 참가하기 284
- 다. 대회에서 점수 산정 방법 288
교재와 함께 활용할 수 있는 좋은 자료는 온라인 강의와 기출문제로 링크는 아래와 같습니다.
- 온라인 강의 : https://www.digitalculture.or.kr/koi/StudyOnline.do 중급과 고급 각각 12개씩 총 24차시.
- 기출문제 : https://www.digitalculture.or.kr/koi/selectOlymPiadDissentList.do
경시대회의 접수 일정은 2016.3.10(목) ~ 3.25(금)이므로 참가하실 분은 놓치지 마시고 꼭 신청하세요.(선생님 온라인으로 일괄 신청하는 방식이랍니다) 신청전부터 차분하게 공부해 나가시고 실제 필기 시험 현장에서는 문제를 풀 시간이 부족하므로 아는것부터 풀어낼 수 있도록 기출문제도 꾸준하게 살펴보셔야 합니다. 올해 필기 시험은 50문항으로 3시간을 풀수 있다니까 인내력과 함께 체력도 중요할 것 같습니다.(필기 시험은 4.9(토)이고 발표는 4.18(월)입니다)
끝으로 "좋은 질문"은 좋은 프로그래머를 만듭니다. 내가 뭘 모르는지, 뭘 궁금해 하는지 그것을 먼저 정리해 보세요. 이른바 "질문 준비" 입니다. 준비된 잘 된 질문은 원래 의도보다 더욱 많은 것을 배울수가 있기 떄문입니다. 질문이 준비가 되면 주저없이 질문하세요. 질문은 관계를 만들어 내는 마법과도 같은 것입니다. 질문을 주저하지 마세요. 그리고, 프로그래머는 코더가 아닙니다. 프로그래머는 문제 해결자입니다. 올림피아드를 잘 준비하시다 보면 어느새인가 훌륭한 문제 해결자로 변해있을지도 모릅니다. 화이팅입니다.
'IT 일반' 카테고리의 다른 글
패치 만들기와 적용 - 토터스깃(TortoiseGit) (0) | 2016.04.07 |
---|---|
2016년 정보올림피아드 공모부문 도전하기 (2) | 2016.02.25 |
깃 프로토콜 서버 동작시키기(Daemon) (0) | 2015.12.11 |
토터스깃(TortoiseGit) pull, fetch, push, sync (0) | 2015.12.10 |
C#에서 티베로 사용하기 - OLE DB (2) | 2015.12.02 |