BLOG ARTICLE TopCoder | 2 ARTICLE FOUND

  1. 2008/07/17 2008 Google Code Jam Begins! (4)
  2. 2007/07/22 온라인 프로그래밍 경시대회 TopCoder 소개 (14)


구글에서 전세계 프로그래머들을 대상으로 주최하는 프로그래밍 경시대회, Google Code Jam (이하 GCJ) 이 오늘 (7월 17일) 시작되었다.

구글 코드 잼 홈페이지

구글 코드 잼 2008 개최 - 구글코리아 공식 블로그의 소개글

구글 코드 잼 2008 임박... 전세계 프로그래머들의 경연장


2007 년에는 Google Code Jam - Latin America 대회만 열렸는데 ( 라틴 아메리카 국가의 사람들만 참가가 가능한 지역 대회 ), 구글은 이 대회를 끝으로 더이상 기존의 TopCoder 플랫폼을 이용한 GCJ 는 열지 않고, 구글에서 자체적으로 개발한 대회 플랫폼을 통해 대회를 치루겠다 공언한 바 있다.

그간 몇번의 알려지지 않은 Beta 대회와 정식으로 열린 Beta 대회 와 Practice Contest 를 통해 공개된 GCJ 의 새로운 대회 방식은 TopCoder 와 ACM-ICPC 의 장점들을 섞어놓은 듯한 모습이다.

우선 각 문제마다 배점이 다르다는 점이 ACM-ICPC 와 다르다. ACM-ICPC 에서는 모든 문제가 같은 비중을 갖고 있으며, 문제를 푼 횟수로 등수를 산정하기 때문에 쉬운 문제부터 찾아서 빨리 푸는 전략이 당연한 정석으로 되어 있다. 반면 TopCoder 에서는 문제의 난이도에 따라 배점 차이가 커서 ( 250, 500 ,1000 점... 문제의 난이도에 따라 배점이 2 배씩 차이가 난다! ) 어려운 문제를 먼저 푸는 전략을 쓰기도 한다. 그리고 쉬운 문제는 틀려도 어려운 문제를 맞춰서 등수가 뒤바뀌는 경우도 많이 발생한다.

GCJ 에서는 문제 별로 배점이 다르며, 같은 문제마다 Input case 의 Boundary 가 다른 2 가지 Input 이 주어진다는 점이 특이하다. 즉, Small Input 과 Large Input 의 두가지가 제공되는데, Small Input 은 검사할 범위가 작으므로 쉽게 해결할 수 있으며, 맞는지 틀리는지 여부를 바로 알 수 있다.

Large Input 은 Small Input 보다 입력값의 범위도 더 크며, 실행 결과는 TopCoder 처럼 대회가 종료된 이후에 알려주기 때문에 스스로 생각하기에 완벽하다고 생각되는 솔루션을 충분히 테스트를 거친 후에 제출해야 한다.

Qualification Round 의 경우 Small Input 은 문제당 5점, Large Input 은 문제당 20 점이었다.
주어진 모든 Test Case 를 통과해야만 점수를 받을 수 있으며, 테스트 케이스에 대해서 하나라도 틀릴 경우 0 점이다. ( All or Nothing 방식. 부분점수란 없다. ) 그리고 ACM-ICPC 와 마찬가지로 점수 ( 문제푼 횟수) 가 같을 경우에는 빨리 푼 순으로 시간이 산정되며, Small Input 문제를 틀리는 경우 Penalty Time 이 추가된다.

GCJ 는 TopCoder 와는 달리 별도의 플랫폼이 필요없이 웹 브라우저만 가지고 대회를 치룰 수 있었다. 플랫폼에 자유롭게 한 것은 많은 참가자들을 배려한 부분으로 보여진다. 또한, 개발 언어에 대해서도 특별한 규정이 없었다. Input 에 대해서 원하는 Output 만 출력한다면 어떤 개발 언어를 사용하든지 문제가 될 것은 없다는 의미인 것 같다.

GCJ 는 7월 17일 시작하여 4 번의 온라인 라운드와 준결승 오프라인 라운드로 나누어 치뤄지며, 최종 결선에 오르는 100 명은 미국 마운틴 뷰의 구글 본사에서 최종 결승전을 치룬다.

대회 상금

총 상금은 8 만달러 규모...  우승상금 1 만달러.

재미있는 것은 우승자에게 부상으로 전세계 어느곳이든 구글의 사무실에서 식사를 10 번 할수 있는 기회를 제공해 준다는 것이다. ( 최대 10 명까지 친구를 데리고 갈 수 있다 한다! ) 직원에게 무료로 제공하는 맛있고 럭셔리한 식사로 유명한 구글의 근무환경에 대한 자부심이 엿보인다.

PS) 아직도 참가 신청과 참여가 가능하므로 관심있는 분들은 참가를...
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/229 관련글 쓰기
댓글을 달아주세요!
  1. Radiant 2008/07/20 09:15  댓글주소  수정/삭제  댓글쓰기

    맨날 눈팅만 하다가 실제로 덧글 남겨봐요 ㅎㅎ
    SRM에서 오타로 Radient를 사용중인 유저입니다 ㄱ-

    사실 코드잼도 관심 많았는데, 지난번 TCO '08의 쓰라린 추억때문에 그냥 접어버렸습니다.. ㅠㅠ
    역시 세계 레벨의 벽은 높은것 같아요 ㅠㅠ

  2. Radiant 2008/07/21 00:23  댓글주소  수정/삭제  댓글쓰기

    일단 참가는 할 예정인데, Internet Competition 날에 너무 중요한 면접이 겹쳐서
    완전 곤란한 상황이 되었습니다 ㅠㅠ

    그래도 다행히 면접은 오전이라 어떻게든 양립이 가능할 것 같기는 한데,
    혹시라도 곤란한 상황이 생길까봐 불안하네요;;;

이름 암호 홈페이지


리퍼러를 분석해 보면 ACM-ICPC(세계대학생 프로그래밍 경진대회) 나 프로그래밍 경시대회 정보를 검색하다 이곳에 오는 분들도 꽤 되는 것 같다. 그래서 오늘은 TopCoder 에 대해서 소개하고자 한다.

프로그래밍 분야가 다른분야와 달리 어려운 점 중 하나는 프로그래머의 역량을 객관적수치로 평가하기가 어렵다는 것이다. 예를 들면 영어 능력은 토익/토플 과 같은 시험 성적을 통해 간접적으로 나마 평가가 가능하고, 운전 능력은 그 사람의 운전 경력과 무사고 몇년~ 이런 숫자를 통해 평가가 가능하다.

하지만 프로그래머의 코딩 실력을 평가해보려면 어떻게 해야 하는가?? 정보통신부 노임단가 기준대로 학력/경력/각종 자격증 소유 여부로 매겨야 하나?? 대답은 분명히 No 다. 프로그래밍 실력이 경력/학력/자격증과 정비례하지 않는 경우가 많다는 사실은 많은 현업 개발자들의 경험을 통해 입증되었다. ( IT 업계특성상 경력/학력이 높아질수록 엔지니어는 프로그래밍에서 멀어지고 아키텍트 or 관리자를 지향하게 된다. )

그래서 프로그래머의 역량을 측정하기 위한 방법중 하나로 도입된 것이 바로 알고리즘과 문제해결 능력을 묻는 코딩문제를 얼마나 잘 푸는지를 평가하는 방식이다.
IOI (국제 정보 올림피아드)ACM-ICPC 와 같은 알고리즘 문제풀이 대회를 학교와 교육기관에서 매년 많은 예산을 들여 개최하고, Google, MS 같은 IT 기업들이 개발자들의 입사시험 문제로 알고리즘 코딩 문제를 내는 것은 바로 이러한 이유 떄문일 것이다.

하지만 IOI 와 ACM-ICPC 는 소수의 학생들을 대상으로 한정되어 있고,
UVaPKU , USACO 와 같은 프로그래밍 연습 사이트도 존재하나 비영리 사이트인 관계로 정기적인 온라인 대회도 별로 없고, 학습자료나 풀이방법에 대한 친철한 가이드도 부족하여 체계적으로 프로그래밍 연습을 하기엔 불편한 점이 많다.

이 와중에 미국의 한 회사가 정기적으로 온라인상에서 전세계 모든 개발자들을 대상으로 알고리즘 문제풀이 대회를 개최하고, 결과를 Rating 시스템을 도입해 수치/등수화한 것이 있으니 바로 TopCoder 매치이다.

사용자 삽입 이미지

TopCoder Inc. 라는 회사의 모토를 보면, 개발자들의 역량을 객관적으로 평가하기 위한 온라인 프로그래밍 대회 서비스를 열고, 이 결과들을 통해 여러 회사들이 개발자들을 쉽게 채용을 할 수 있는 Employment Service 를 연결하고 있다. (TopCoder Inc. 는 이런 회사들의 스폰서쉽이 주 수입원인 것 같다)

프로그래밍 대회는 Algorithm 분야 및 Design(컴포넌트 설계), Development(컴포넌트 개발), Marathon Match(2주간의 장기 코딩대회) 로 나뉘어지며, 본인이 참여하고 있는 Algorithm 매치는 주 1회 꼴로 열리는 SRM(Single Round Match) 을 통해서 성적이 매겨진다.

현재 한국에서는 60 여명의 코더가 활동중이며,
한국의 국가 순위는 이글을 쓰는 현재 15위 이다. TopCoder 를 통해 전세계의 개발자들 중에서 자신이 어느정도 위치인지 대략적으로나마 알수 있고, 또 자신을 단련하는 좋은 연습장이 될 수 있다. 그리고 무엇보다도 정말 재미있다! ^^

자... 그럼 혹시 TopCoder 에 가입하고 싶은 분들이 계신가..

http://www.topcoder.com/reg/ 

위의 링크에 가서 Competition Registration 항목을 선택하고 가입하면 된다...
참고로 가입시 적는 항목중 "Referring Member" 란 항목이 있는데, 추천회원을 의미한다. 이 글을 보고 가입하려는 분들은 글쓴이의 수고를 생각해서 Soyoja 라고 써 주면 감사하겠다 =D  (싫다면 할 수 없다. ㅎㅎ)

대회 방식은 간단하다. TopCoder 에 회원 등록을 한 후 Java 로 만들어진 Competetion Arena 라는 프로그램을 다운받고,
Event Calendar 를 보고 SRM 이 열리는 시간에 접속해서 대회를 하면 된다. (표시된 시간은 미국 동부 표준시인 것을 주의) SRM 은 코딩 75분, 5분 휴식 후 다른 사람들이 짠 코드의 버그를 잡는 Challenge 15 분으로 총 2 시간 정도가 소요된다.

회원 가입 및 TopCoder 활동은 모두 무료이며... 대회에서 성적이 좋으면 여러가지 재미난 혜택들이 많으니 많은 한국 개발자분들의 참여가 있으면 좋겠다... =)

크리에이티브 커먼즈 라이선스
Creative Commons License

'Contest > TopCoder' 카테고리의 다른 글

TopCoder SRM Issue  (2) 2008/12/29
온라인 프로그래밍 경시대회 TopCoder 소개  (14) 2007/07/22
http://soyoja.com/trackback/56 관련글 쓰기
  1. TopCoder 시작하기..

    FROM Mission Top Secret Destination Unkown..~ 2007/08/08 01:54  삭제

    저희 동아리 위키 페이지에서 몇 줄만; - 룰 - Algorithm Competition 의 라운드하나는 다음 과정으로 나뉘어진다. Coding phase: 75분. 문제를 보고 코딩을 한다. 문제별로 최대 점수가 있고, 해당 문제를 여는 시점부터 시간이 계산되어, 답을 제출할 때까지 시간이 길수록 점수가 낮아진다. 대개는 문제 최대 점수와 난이도는 비례한다. 만약 easy 를 열고, 답을 제출하지 않은 뒤, 다시 medium 을 열어서 풀고, 다시..

  2. Flex 코딩으로 돈버는 방법

    FROM 열이아빠의 RIA 이야기 2008/11/02 22:55  삭제

    우연히 아래와 같은 제목의 글을 보게 되었습니다. Flex on TopCoder http://gurufaction.blogspot.com/2008/10/flex-on-topcoder.html 오호. 원래는 Java 와 .NET 만 참여할 수 있었는데 추가적으로 Flex 개발부분이 들어갔나 봅니다. Flex.org 에 관련된 내용이 잠깐 언급이 되어있는데 날짜가 10월 9일이니깐 얼마된것은 아니네요. http://flex.org/company/topc..

  3. Top Coder에 도전하세요!

    FROM [장선진] 삶을 위한 소프트웨어 2009/01/01 20:20  삭제

    평소 소프트웨어(Software) 개발에 관심이 많거나, 특히 알고리듬(Algorithm)이나 소프트웨어 디자인(Software Design)에 관심이 많다면 Top Coder(http://www.topcoder.com)라는 사이트에서 자신의 능력을 다른 사람들과 함께 겨루어 보는 것도 참 좋은 일이라고 생각합니다. 전 세계에서 소프트웨어에 관심이 많은 사람들이 모여서 자신의 능력을 겨루고 있는데 재미있는 점은 우리나라의 순위입니다. 현재 우리나라의..

댓글을 달아주세요!
  1. BlogIcon 송규욱 2007/08/08 01:47  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.. 졸업하시고도 열심히 하시네요..
    저도 TopCoder를 시작해보려고하는데.. 앞으로 종종 찾아오겠습니다..

  2. BlogIcon JM 2007/11/27 14:54  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, 구종만입니다. :)
    부탁드릴 게 있어서 몇번 irc 에서 찾았는데 그때마다 안계시더군요.. ^^;; 그래서 와서 리플 남깁니다.
    혹시 이 블로그 엔트리를 알고스팟 오픈렉쳐 게시판에 올려주시면 안될까요? 귀찮으시다면 제가 와서 퍼가도 (^^;;) 괜찮습니다.

    탑코더나 각종 대회에 대한 소개글이 필요한데.. 잘 써놓으신 것 같아서 전재하고 싶습니다. ㅎㅎㅎㅎ
    미리 고맙습니다~ ^^

  3. BlogIcon JM 2007/11/29 16:42  댓글주소  수정/삭제  댓글쓰기

    네.. 낼름 퍼갔습니다. 감사합니다!!! ^^

  4. Raina 2008/01/31 17:00  댓글주소  수정/삭제  댓글쓰기

    오 이런것도 있네요.
    조만간 시간내서 저도 한번 시작해봐야겠네요.
    재미 있을 것 같아요.
    좋은 정보 감사합니다. ^^

  5. BlogIcon doodoori2 2008/10/19 03:02  댓글주소  수정/삭제  댓글쓰기

    이번에 처음 참가해보았는데요 ㅎ
    방마다 다른 문제가 뜨는건가요? 아니면 모든 Room에 같은 문제가 들어가는건가요?ㅎ
    점수 채점 방식도 좀 궁금하더라구요a
    영어를 읽는데는 많은 에너지를 소모해야해서 ㅠㅋㅋ

    • BlogIcon soyoja 2008/10/20 09:43  댓글주소  수정/삭제

      같은 Division 내의 모든 방에 같은 문제가 뜹니다.
      Rating 1200 점을 기준으로 1200 이상이면 Divison 1, 1200 점 미만이면 Division 2 로 나뉘어지며, Division 별로는 문제가 다르지만, 같은 Division 내에서는 방이 달라도 문제는 같습니다. ^^
      채점방식은 SRM 이 완전히 완료된 이후에 문제 출제측에서 준비한 모든 test case 에 대해서 모두 통과했을 경우에만 System Test Pass 가 되며 점수를 받게 됩니다. ^^

  6. BlogIcon 지돌스타 2008/11/03 15:26  댓글주소  수정/삭제  댓글쓰기

    와우! 이런것도 있네요

  7. 미키드 2009/07/23 01:41  댓글주소  수정/삭제  댓글쓰기

    요거 퍼갈께요~

이름 암호 홈페이지