한국정보올림피아드 경시부문 언어변경 요약


1. 대회언어변경

  o 1998년 개발된 대회용 언어를 변화하는 프로그래밍 환경에 맞추어 전세계 공용의 표준 C/C++언어로 변경하여 국제 경쟁력 제고

  o 한국정보올림피아드 경시부문 대회용 프로그램언어를 기존 Visual  C++ 6.0 과 Visual Basic 6.0을 최신 리눅스버전의 표준 C/C++(OS : Ubuntu 12.04 LTS i386, Gnome Classic)언어로 변경하여 실시


2. 대회용 언어변경 

 구분

변경 전  변경 후 
 OS

 Windows XP / 7

 Ubuntu Linux 12.04
 컴파일러  Visual C++, Visual Basic  GNU C/C++ Compiler
 IDE  Visual Studio 6.0  Eclipse / Code::Blocks


3. 대회용 언어설치

 구  분  PC에 직접설치  가상머신으로 설치
 OS   - Linux OS 직접설치  - Windows에서 Linux OS가 가상으로 동작하도록 설치
 설치시 필요 매체  - 설치용 CD 나 USB 필요  - 가상이미지화일 필요
 PC 활용  - 100% 활용  - 일부만 활용
 설치 및 복구 - Windows를 포맷 또는 Linux를 위한 별도 파티션 필요
- 원래 환경으로 복귀가 어려움
 - 설치 간단
- 쉽게 원래 PC환경으로 복귀 가능


4. C++컴파일러와의 차이점 


o main

    - int main() 형태로 사용하는 것이 표준프로그램이 종료될 때 무사히 종료되었다는 뜻으로 0을 return 함

 기존 환경(Visual C++)

 바뀌는 환경(G++)

 void main() {
      할일들 

 }

  int main() {

      할일들 

     return 0;

 }


o variable scope

    - for문 안에서만 사용하도록 정의된 변수 i 가 for문 밖에서도 사용 가능한 것은 VC++의 버그

 기존 환경(Visual C++)

 바뀌는 환경(G++)

 for(int i = 0; i < 10; i++)

       printf("%d ", i );

 printf("%d ", i );

 int i;

 for(i = 0; i < 10; i++)

       printf("%d ", i );

 printf("%d ", i );


o 64bit integer
    - 21억 이상의 값을 변수에 넣을 때, 기존에는 __int64 형을 사용했으나 바뀐 환경에서는 long long 형을 사용해야 함

 기존 환경(Visual C++)

 바뀌는 환경(G++)

 __int64 gib_num = 10000000;
 big_num *=big_num;
 printf("%I64d", big_num);
  long long gib_num = 10000000;
 big_num *=big_num;
 printf("%lld", big_num);


o itoa
    - itoa는 표준에 정의되어 있지 않은 함수로, VC++에서만 제공되는 함수

 기존 환경(Visual C++)

 바뀌는 환경(G++)

 int a = 10;

 char str[10];

 itoa(a, str, 10);

 int a = 10;

 char str[10];

 sprintf(str, "%d", a);


o 평소에 C/C++ 표준을 지켜 코딩하는 버릇을 들였다면 크게 차이가 없고, 그렇지 않더라도 언급된 네 가지 정도만 주의하면 별도의 적응 시간 없이 변경 가능

 기존 환경(Visual C++)

 바뀌는 환경(G++)

 void main(X)  int main(O)
 __int64(X)  long long(O)
 itoa(X)  sprintf(O)
 변수는 선언한 곳 안에서만 사용


5. 
KOI 경시부문용 프로그래밍언어 Linux 설치방법

1) 컴퓨터에 직접설치

  o Ubuntu 12.04 다운로드
    - PC사양에 맞게 2개의 파일 중 선택 (i386 : 32bit 운영체제, amd64 : 64bit 운영제체)




  o CD 혹은 USB로 굽기
    - CD로 구울 경우

    

- USB로 구울 경우


     ·우분투 홈페이지에서 Download → Desktop 선택

     ·How to create USB stick에서 설명되어 있는대로 진행


  o 재 부팅 후, 부팅 장비 우선순위 설정
    ·모양은 컴퓨터마다 다를 수 있으나, CD나 USB를 가장 위로 올려주시면 됩니다


   o 리눅스 실행 화면



  o USB나 CD 상에서 그냥 사용할 수도 있고, 필요할 경우 Windows 처럼 컴퓨터에 직접 설치할 수 있습니다
  o 직접 설치하려면 Install Ubuntu 아이콘을 클릭한 후 절차대로 따라하면 됩니다


 2) 가상머신으로 설치

  o Oracle virtual box 설치



  o KOI 가상 이미지 파일 확보


 https://www.dropbox.com/s/3rtnqlelfsn0e2x/KOI.ova 
  o Virtual box를 켜고, 파일을 목록으로 드래그
    - 메뉴에서 파일→가상 시스템 가져오기 실행

  o 가져오기 클릭


  o KOI를 선택한 후 시작 클릭

  
o 초기 아이디 student, 비밀번호 olympiad


6. IDE 사용하기


  o Files -> New -> Project를 선택한다

  o Console Application을 선택하고 Go를 누른다

  o Next 를 누른다

  o C++ 선택 후 Next를 누른다


  o Finish를 누른 후, 왼쪽 창에서 main.cpp를 찾아 연다

  o main.cpp에서 문제를 푼다

  o Build -> Build and run을 하면 프로그램이 컴파일된 후 실행


  o Code::Blocks : UI 인터페이스가 Visual Studio와 비슷하고, 프로젝트 생성이나 디버그 등의 기능을 대부분 비슷하게 지원하므로 쉽게 적응할 수 있음

  o 그 외에 Eclipse, Emacs, Vim 등의 에디터도 사용 가능

7. 관련자료를 받을 수 있는 주소
   - Oracle Virtual Box : https://www.virtualbox.org/wiki/Downloads/ 
   - KOI 가상 이미지 파일 :  https://www.dropbox.com/s/3rtnqlelfsn0e2x/KOI.ova
   - 정보올림피아드 홈페이지 자료실 : https://www.digitalculture.or.kr:446/sub07/AllselectInfoTrainingList.do

Posted by 파이군
,

한국정보올림피아드(KOI, Korea Olympiad in Informatics)는 행정안전부에서 주최하고 한국정보화진흥원에서 주관하는 대회로써 국내 최고의 IT영재들이 참가하여 실력을 겨루는 대회로 국내 최고의 권위를 가진 대회입니다.


한국정보올림피아드



경기도 정보올림피아드 경시대회 일정이 아래와 같이 발표되었네요 참고하세요.

서울은 올해(2011년)부터 4월 16일 지역예선(필기)을 실시하지 않고, 5월 21일 본선(실기)부터 학교추천을 받아 실시한다고 합니다. 이런 경우를 혜택받는다고 해야하는지 모르겠네요. 경기도 학생들은 예선부터 코피나게 준비하는데 서울은 바로 본선부터 한다... 참.. 그렇네요.. 

□ 경기도 경시부문 추진일정

구 분

지역 예선대회

도대회(본선대회)

한국올림피아드대회(전국대회)

일  시

2011.4.16.(토)

14:00~16:00

2011.5.21.(토)

14:00~18:00

2011.7.15.(금) 예정

09:00~18:00

장  소

각 교육지원청 지정장소

부명정보산업고등학교(예정)

대전광역시(예정)

대  상

재학생, 비재학생

(휴학생제외)

 지역예선 선발자

초ㆍ중ㆍ고 각70명

도대회 선발자

원  서

접수처

재학생 : 각 교육지원청

비재학생 : 한국정보화진흥원

경기도교육정보연구원

한국정보화진흥원

원서접수

기  간

2011.4.04.(월)~4.08.(금)

2011.4.27.(수)까지 

2011.6.20.(월)~6.24.(금)

문제유형

필기시험

실기시험

실기시험

주  관

각 교육지원청

경기도교육정보연구원

한국정보화진흥원

비  고

도대회 출전자 선발

전국대회 출전자 선발

 

정보올림피아드를 어떻게 준비해야하는지 고민 중이라면 정보올림피아드&알고리즘 사이트를 이용해보세요. 기출문제도 풀어보고 단계별로 문제를 구분해놓아서 초보도 쉽게 공부할수 있을꺼 같아요.

컴스쿨의 정보올림피아드강좌에 지역 예선 기출문제풀이를 강의로 올리고 있네요. 제가 처음 봤을때 2010년 초등부만 있었는데. 지금은 2010년 중등부와 2009년 초등부 문제가 등록 되었네요.. 계속 올라 올꺼 같네요.. 단, 1강만 무료로 들을수 있고 유료 결재해야 합니다.

정보올림피아드 경시대회 준비하시는 분들에게 도움 되는 정보였으면 좋겠네요...
Posted by 파이군
,

한국정보올림피아드란 무었인가?

⊙ 한국정보올림피아드(Korea Olympiad in Informatics, 이하 KOI)는 행정안전부에서 주최하고 한국정보화진흥원에서 주관하는 대회로 국내 최고의 IT영재들이 참가하여 실력을 겨루는 대회로써 국내 최고의 권위를 가진 대회입니다.

⊙ 대회방식
KOI는 지역대회(시·도)에서 추천된 학생들이 주어진 문제해결 능력을 겨루는 경시대회와 학생이 스스로 개발한 S/W의 작품성을 평가하는 공모대회 2개 부문으로 진행이 됩니다.

- 경시대회는 수학적 지식과 논리적 사고능력을 필요로 하는 알고리즘과 프로그램 작성 능력을 평가하는 대회로 전국 16개 시/도 교육청에서 주관하는 지역대회(3월-6월경 예선, 본선 실시)와 지역대회를 통과하여 선발된 학생 또는 청소년이 참가하는 전국대회로 진행됩니다.
- 공모대회는 전국의 초, 중, 고등학생이 개발한 창의적인 S/W 작품을 공모하여 심사하는 대회입니다. 본 대회는 16개 시/도 교육청에서 추천한 작품을 대상으로 전국대회를 개최합니다.

⊙ 그럼 준비는 언제? 어디서?
경시부문, 공모부문 모두 대회에 맞는 준비를 해야 하는데요. 언제가 좋을까요? 바로 지금 겨울 방학을 이용하는 것입니다. 물론 기간이 짧아서 효과가 있겠느냐 하시는 분들도 있지만 여름 방학보다는 길잖아요. 또 학기 중에는 시험공부 즉, 내신에 더 신경이 갈수 밖에 없구요. 그래서 겨울방학을 이용하여 짧고 굵게 준비하고 학기가 시작되면 좀 여유을 갖고 하자는 것이지요.

공모부문은 무엇을 만들것이가?를 고민해야하는데, 표절, 대리작, 저작권 침해등은 심사에서 제외되니까 참고자료는 정확이 해야겠죠!

경시부문은 지역별로 다를 수는 있지만 각 지역 예선은 보통 4월 말, 본선은 5월 말에 실시를 하고 7월 17일에 KOI를 실시하죠. 각 지역 예선은 필기시험으로 진행을 하므로 필기준비를 해야합니다. 프로그램만 열심히 했다가 낭패를 보는 경우도 더러 있더군요..

필기시험은 수리퀴즈(10%), 관련수학(20%), 자료구조(20%), 알고리즘(50%) 로 구성됩니다. 알고리즘 문제는 빈칸채우기나 결과값 물어보는 유형이고요 프로그램을 공부했다면 거의 풀수 있는 문제죠. 그러나 31번부터는 지난 KOI대회의 빈칸채우기식으로 출제하는데 분석하는데 시간도 오래걸리고 어렵기도 하죠. 그냥 대부분 찍신의 강림을 바랄뿐... ^^;;
겨울방학에는 프로그램에 집중을 하고 수리퀴즈, 관련수학, 자료구조도 같이 병행하고 방학이 끝나는 2월이나 학기 시작인 3월부터는 반대로 해야합니다. 우선 지역 예선은 통과 해야죠.

본선대회부터는 프로그래밍을 하는데요. 2010년 까지는 Visual C++6.0, Visual Basic 6.0을 사용했는데 바뀔지는 아직 모르겠네요. 프로그램을 어디서 준비를 해야하나 고민이실테데.. 정보올림피아드&알고리즘, 알고스팟, 도블렛, koi4u, Informatica Online Judge 사이트에서 도움을 받으시면 될꺼 같습니다.

후회 없는 결과를 위해 열심히 준비합니다.


 

Posted by 파이군
,