티스토리 뷰



http://www.topcoder.com 에서 진행하는 알고리즘 대회인 Single Round Match에 요 근래부터 참여를 하고 있다. 오래전에 이러한 곳이 있다는 것을 알고 있었지만 UVa등 여타 문제 풀이 사이트와는 다른 접근 방법 때문에 미루고 미루다가 이제야 부터 시작하게 되었다.

다른 사이트는 여러 문제들중 풀고 싶을 때 문제를 골라서 풀어 제출하고 로봇 테스트를 통과하지 못하면 어떤 입력에 대해서 틀린 값이 나올지 추축을 하고 코드를 다시 한번 검증을 하고 수정을 한 다음에 다시 제출해야 한다. 이게 맞을때까지 반복. 만약 도저히 알지 못하겠으면 포기를 하던가 구글링을 하여 정답 소스를 찾던가 사이트 마다 마련된 게시판에서 검색을 하여 해결 방법을 찾아보는 식으로 진행을 했다.

탑코더는 자바로 만들어진 Arena라는 런처를 통해 마치 게임하듯이 접속을 진행을 한다. 진행 방법도 게임과 흡사하다. 20명당 한방에 들어가게 되며 문제는 총 3개의 문제로 구성이 되어 있다. 난이도마다 점수가 주어지며 빨리 풀수록 점수는 높게 되는데 여기 까지는 여타 다른 사이트랑 다를게 없어 보이지만 차이는 이 다음부터. 코딩하고 제출한것은 시스템에서 어떠한 검사도 해주지 않는다. 제출한 시간이 빠를 수록 바로 점수가 부여된다. 이러면 엉터리 코드를 제출한 사람이 높은 점수를 받을거 같지만 이 다음이 있다. 휴식 시간이 지나고 챌린지 라는게 있는데, 이게 탑코더의 백미.  다른 사람의 소스를 열어 보고 오류 결과를 낼 만한 입력을 만들어 입력을 하여 그것이 적절한 지적이였으면 오류 소스를 짜낸 사람은 그 문제에 대한 점수가 0점 처리 되고 지적한 사람은 50점을 받게 된다. 챌린지 시간에 다른 코더의 눈에 띄지 않고 무사히 견뎌냈다고 해도 다음번에 있는 시스템 테스트에서 걸려버리면 0점 처리.

챌린지라는 도구를 하나 넣음 으로써 알고리즘 문제 풀이를 보다 게임화 시켰다. 한 문제도 풀지 못한 코더가 챌린지를 통해서 룸에서 높은 순위까지 올라가는 것도 가능하다.

멋진점이 진행 방식 말고도 몇가지 더 있는데, 전세계 곳곳에 흩어져 있는 훌륭한 코더들이 풀어 재출한 소스 코드를 언제든 직접 볼 수 있다는 점과 참여자들이 자발적으로 만들어가는 Editorial, 그리고 챌린지에서 혹은 시스템 테스트에서 실패를 했을 경우 어떠한 입력에서 실패를 했는지도 알 수 있다는 것이다. 모든 테스트를 통과한 코더의 기록을 통해서 다른 테스트 입력이 뭔지도 알아낼 수 있으니 시스템 테스트에서 실패한 문제는 다른 코더의 소스를 통해서, 입력되었던 테스트 입력들을 통해서 올바른 소스로 고쳐 나갈 수 있다.

멋지다 탑코더. 왜 이걸 이제 시작했을까 하는 아쉬움이 남는다. ㅠ_ㅠ..

알고리즘 문제 풀이를 연습하는 가장 멋진 사이트가 아닐까 생각한다.

TAG
댓글
  • 프로필사진 BlogIcon Zombine 허허
    늦게시작하셨으면서 저보다 레이팅 높은 나쁜 준님 ㅠㅠ
    2010.01.20 22:39
  • 프로필사진 Favicon of https://blog.mastojun.net BlogIcon Mastojun ^^; 프로그래밍 이라는걸 처음 시작한 걸로 기간을 칩시다. 전 16년째군요. ㅠㅠ.. 2010.01.21 21:36 신고
  • 프로필사진 Favicon of https://karnies.tistory.com BlogIcon karnies 안녕하세요. 탑코더 궁금한게 있어서 그러는데요.
    점수가 초기 점수가 제출한 시간 기준으로 나오나요?
    제가 방금 전에 Practice Room 에서 250점 짜리 문제 제출했는데, 93점이라고 나오는데,
    이게 running time이나 메모리 사용량 기준이 아니라, 문제가 출제되고 제출한 시간 기준이라는 건가요?
    아니면 문제를 열고 제출한 시간 기준인가요?
    스케쥴을 보니, 1시간 15분의 코딩시간이 있는 것을 보니 전자 일 것 같은데요. 감사합니다.
    2015.02.10 17:21 신고
  • 프로필사진 Favicon of https://blog.mastojun.net BlogIcon Mastojun running time이나 메모리는 제한만 넘기지 않으면 상관없습니다.
    문제가 출제된 시간이 아니고 문제를 열고 제출한 시간 기준입니다.
    2015.02.17 01:51 신고
댓글쓰기 폼