E D R , A S I H C RSS

Programming Contest

프로그래밍 컨테스트. ACM의 ICPC가 유명.

국내에서는 많이 시들해진 감이 있다.

1. Job Application

컨테스트는 아니지만, ITA 소프트웨어에서는 아예 자신들이 낸 문제를 풀지 않으면 이력서조차 받지 않는다.

현재 EightQueenProblem의 변형을 볼 수 있다.



2. Internet Problem Solving Contest



나이나 학력 제한이 전혀 없습니다(Open경우). 팀은 세명까지 가능하고, 혼자서도 참가 가능합니다. 사용 가능 언어는 Java, C++, Pascal, Python 등 입니다. 제한 조건은 한 팀은 프로그램 개발을 위해서는 하나의 컴퓨터만 사용해야 한다는 것입니다. 이번 금요일(2002/5/10)에 한국 시간으로는 오후 9시부터 5시간 동안입니다. 온라인(이메일)으로 진행합니다. (see also .http://ipsc.ksp.sk/rules.php )

이미 참가 신청을 한 한국팀(연세대, 경북대, ...)들도 몇 팀 보이는군요. 재미있겠죠? 등록은 컨테스트 시작 2시간 전까지 입니다.
ZeroPagers 중에 참가를 희망하는 사람들이 있는 걸로 아는데 왜 아무도 신청을 하지 않았죠? 하려면 빨리 하세요.
신청 했습니다. :) --석천
Choong-Ang Univ.는 어디죠? --이선우
그..그게 누군지는 모르겠군요. -_-; 도대체 두팀이나; 누가 신청한건지 자수를! (ps. 제가 신청서 안썼습니다;) --석천
저랑 정직이 그리고 희록이형 입니다. --구근
저기 학교 이름 못 바꾸나요? 지금 보니 Chung Ang 이라고 제대로 써진건 하나 던데여.. 나머지는 Chang Ang 또는 Choong Ang 이던데여.. 2~3개 팀이여.. --상협
Registeration 에서 Team Identifier String 받은거 입력하고 고치면 됨. --석천

2.1. Know Yourself

수준이 궁금하신 분들은 K-In-A-Row를 풀어보세요. http://ipsc.ksp.sk/problems/prac2002/sampl_r.php

만약 문제 이해 시간을 포함 (혼자서) 40분 이내에 R1과 R2 모두에 대해 정답을 구했다면 (2000년도 본선문제였습니다. 같은 사이트 Problem Archive에 정답이 있습니다) 아마 10위권 이내에 들 실력이라고 사료됩니다. 아마 EightQueenProblem을 (사전 정보 없이) 한 시간 안에 푼 사람이라면 10위권 안에 충분히 들 수 있을 것 같습니다.

2.2. Improve Yourself

만약 자신이 K-In-A-Row를 한 시간 이상 걸려도 풀지 못했다면 왜 그랬을까 이유를 생각해 보고, 무엇을 바꾸어(보통 완전히 뒤집는 NoSmok:역발상으로, 전혀 반대의 "極"을 시도) 다시 해보면 개선이 될지 생각해 보고, 다시 한번 "전혀 새로운 접근법"으로 풀어보세요. (see also DoItAgainToLearn) 여기서 새로운 접근법이란 단순히 "다른 알고리즘"을 의미하진 않습니다. 그냥 내키는 대로 프로그래밍을 했다면, 종이에 의사코드(pseudo-code)를 쓴 후에 프로그래밍을 해보고, 수작업 테스팅을 했다면 자동 테스팅을 해보고, TDD를 했다면 TDD 없이 해보시고(만약 하지 않았다면 TDD를 하면서 해보시고), 할 일을 계획하지 않았다면 할 일을 미리 써놓고 하나씩 빨간줄로 지워나가면서 프로그래밍 해보세요. 무엇을 배웠습니까? 당신이 이 작업을 30분 이내에 끝내려면 어떤 방법들을 취하고, 또 버려야 할까요?

2.3. Strategy

만약 팀을 짠다면 두사람은 PairProgramming으로 코딩을 하고(이 때 Interactive Shell이 지원되는 인터프리터식 언어라면 엄청난 플러스가 될 것임), 나머지 하나는 다른 문제를 읽고 이해하고, (가능하면 단순한) 알고리즘을 생각하고 SpikeSolution을 종이 위에서 실험한 뒤에 현재 커플이 완료를 하면 그 중 한 명과 Pair Switch를 하고 기존에 코딩을 하던 친구 중 하나는 혼자 다른 문제를 읽고 실험을 하는 역할을 맡으면 효율적일 겁니다. 즉, 두 명의 코더와 한 명의 실험자로 이루어지되 지속적으로 짝 바꾸기를 하는 것이죠.

또, Easy Input Set은 직접 수작업으로 풀고 그걸 일종의 테스트 데이타로 이용해서, Difficult Input Set을 풀 프로그램을 TDD로 작성해 나가면 역시 유리할 것입니다. 이렇게 하면 Time Penalty는 거의 받을 일이 없겠죠.

3. 관련 사이트

3.1. topcoder


글들을 보니까 경진대회에 관심이 있는 것 같아서 관련 사이트를 올립니다.

특이한 점은 토너먼트 형식으로 제한된 시간내에 프로그래밍 대결을 벌인다는 거죠. 이긴자에게 상금을 줍니다만 미국외의 사람에겐 받을 자격이 없는 것 같기도 합니다. 스윙 애플릿을 다운로드 받아서 주어진 문제에 대해 자바, C++, C# 등으로 코딩할 수 있고 제대로 해결했는지 그 자리에서 바로 확인할 수 있습니다. -- 박지훈

3.2. usaco


http://ace.delos.com/usacogate 에서 트레이닝 받을 수 있지요. 중,고등학생 대상이라 그리 어렵지 않을겁니다. 이덕준ProgrammingContest 준비 첫걸음으로 이 트레이닝을 추천합니다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.4021 sec