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 2021-02-07 05:24:03
Processing time 0.0200 sec