지난 11월 4일과 5일, 양일에 걸쳐 ACM-ICPC 아시아 지역 예선 대회인 대전대회가 열렸다. 

ACM-ICPC 에 대해서는 이미 여러차례 이 블로그에서 소개했으니 이전 글을 참고하기 바라며, 공식 홈페이지에 올라온 대회 결과부터 올려본다.

 
Rank Name School Solved Time
1 SUNG.. Seoul National University 11 1110
2 ACP National Taiwan University 11 1267
2 homotopy between u&me Seoul National University 10 1574
2 Hungrian Method Seoul National University 8 778
3 The_Longest_TeamNameOn_ACMICPC Korea University 8 881
4 Cataclysm KAIST 8 965
4 The Last Chance KAIST 8 1219
5 DTD Pohang University of Science and Technology 7 1116
6 Loop Invariant Hanyang University 6 658
6 ASKY_Code Korea University 6 714
6 PS00 KAIST 6 772
7 Chamfaky Sogang University 6 867
7 Bruteforce KAIST 6 873
7 RIOT KAIST 6 1035
8 ANSI_DINOS Ajou University 6 1036
9 NPC SungKyunKwan University 6 1056
9 Kong Team is Kong Seoul National University 5 441
9 55me Pohang University of Science and Technology 4 404
9 Conquer Sogang University 4 418
9 Code_of_Duty Korea University 4 513
10 001_6 Jari JooSeYo Soongsil University 4 632
11 iGoya ! Yonsei University 4 706
11 INV KAIST 4 838
11 Ya Feel So Good KAIST 4 852
11 Trick or Treat Ajou University 3 237
12 ACMCA Chung-Ang University 3 292
12 Beauty & Beast Season 2 Soongsil University 3 341
12 semipro SungKyunKwan University 3 348
13 HelloWorld Kwangwoon University 3 402
14 Yoshi Inha University 3 431
14 ksilatum Seoul National University 3 487
15 Oxen11 Konkuk University 3 865
15 OhTongue Hanyang University 2 93
15 3idiots Pohang University of Science and Technology 2 104
16 plzA+ Kumoh National Institute of Technology 2 139
16 JuniorH Hanyang University 2 141
16 PS05 KAIST 2 141
17 Illuminati Chungbuk National University 2 294
17 SGAC Sogang University 2 297
18 AgainGold Pusan National University 2 306
19 Brute Force Brain Sejong University 2 339
20 comedas University of Seoul 2 368
21 ASCII_kimchiman The Catholic University of Korea 2 383
21 ICUNIX Myeong Ji University 2 383
23 im_best Kyonggi University 2 384
23 I don't know Pusan National University 2 449
24 amoeba Chosun University 2 466
25 COMSOONEE Sookmyung Women's University 2 519
26 WAP1 Pukyong National University 2 523
 
Honorable Mentions
Team School
A.C.E Andong National University
fff Changwon National University
AL_MASTER Chonbuk National University
2 plus 1 Dong-A University
DNA Dongguk University
HNU-Ai Hanbat National Unversity
Dasom Hanbat National Unversity
GO2GO Hankuk University of Foreign Studies
HS-Thesaurus Hansung University
Conduction Band Hanyang University
Invisible Hands Hanyang University ERICA Campus
IamProgrammer Inha University
DIFF5 Kookmin University
!dr 15 Kookmin University
TripleH Kookmin University
dummy Korea University of Technology and Education
Ltp Kumoh National Institute of Technology
LnS Kyung Hee University
Codecide Pohang University of Science and Technology
ICPC Giants Pukyong National University
Srandom Pusan National University
root Pusan National University
Tak Sangmyung University
PLUM Seoul National University of Technology
docontae Sogang University
Return zerO Soongsil University
UNTITLED SungKyunKwan University
hab-kyuk The Catholic University of Korea
Remainder Ulsan National Institute of Science and Technology
Oh Jesus University of Seoul

No Show
Team School
BIGMOUSE Cheju National University


올해 대회는 서울대학교가 우승하면서 작년에 KAIST 에 빼았겼던 대회 우승을 다시 되찾아 왔다. 
아슬아슬하게 대만국립대학교를 제치고 올해도 한국 대회에서는 한국 팀이 우승하는 전통을 지키게 되었다. 
학교 순위로 3위, 전체 순위 5위에 고려대학교가 랭크된 것도 눈여겨 볼 만 하다. 고려대학교는 사상 최고의 성적을 거두면서 내년도에 폴란드에서 열리는 ACM-ICPC 세계결선(World Final) 출전도 노려볼 수 있게 되었다. 서울대학교와 대만대학교는 세계결선 출전이 확정적이다.


제 11회 전국 대학생 프로그래밍 경시대회 결과

대상  
- 서울대학교 SUNG.. 

금상 
- 고려대학교 The_Longest_TeamNameOn_ACMICPC
- KAIST       Cataclysm 

은상
- 포항공과대학교    DTD
- 한양대학교          Loop Invariant 
- 서강대학교          Chamfaky

동상
- 아주대학교          ANSI_DINOS
- 성균관대학교       NPC
- 숭실대학교          001_6_Jari JooSeYo
- 연세대학교          iGoya! 


공식 홈페이지에서 가져온 대회 풍경 사진을 몇장 올려본다. 

2000 년 부터 시작된 국내 ACM-ICPC 대회는 ( 전국 대학생 프로그래밍 경시대회를 겸한 것은 2001 년 부터 시작 ) 첫 3년간 ( 2000년 부터 2002 년 까지 ) 대전 카이스트 캠퍼스 체육관에서 개최되었다. 그 후 대회 참가자들의 다수를 차지하는 수도권 지역 학생들의 편의를 위해 2003 년 부터 2009 년 까지는 서울에서 개최되었다가 2010 년부터 다시 대전 카이스트 캠퍼스에서 개최된다. 장소 변경에 대해서 주최측이 밝힌 이유는 없지만 아마 비용 문제가 가장 크지 않았을 까 싶다. 서울에서 대회를 개최하기 위해서는 대회를 치룰만한 장소를 2일간 대관을 해야 하는데 국내 ICPC 대회의 경우 참가비도 받지 않는지라 대회 운영비용을 전적으로 후원에 의지해야 하는 것으로 알고 있다. 
어쩃든 대회 참가비를 받지 않고 가급적 많은 팀을 본선에 출전시킨다는 것 만으로도 국내 ICPC 대회는 정말 훌륭하게 매년 치루고 있다고 생각한다.

이 문양은 바로 ACM-ICPC 대회의 로고 문양이다. Think - Create - Solve ! 
그런데, 저 깃발은 10 년전과 동일하다... 설마 10 년째 같은 로고 깃발을 쓰는 것은 아니겠지...? 


제일 왼쪽의 중절모를 쓰신 분은 ACM-ICPC 대회의 아시아 지역 디렉터인 C.J. Hwang (黃金雄, 황금웅?) 이다. 미국 Texas State Univ. 교수이기도 하다 (공식 블로그 : http://icpcasia.blogspot.com ) 매년 15 곳 정도의 아시아 각 지역 ICPC 대회를 관리 감독하느라 고생이 정말 많으시다. 모든 지역 대회를 다 참관하지는 못하고 매년 몇몇 대회 참관을 위해 대회가 개최되는 개최지를 방문하곤 하는데 올해는 한국에 오신듯 하다. 
 
가운데 계신 분은 ACM-ICPC 의 한국지역 대회를 관장하는 대회 감독관인 KAIST 의 좌경룡 교수님이다.  
말 그대로 우리나라에 ACM-ICPC 대회가 개최될 수 있도록 산파역활을 하신 훌륭하신 교수님... 국내에서 ICPC 대회가 개최되기 이전인 1990 년대에는 ICPC 세계대회에 나가기 위해서 국내에서 예선을 치룰 수가 없었기에 한국의 대학팀들은 매년 외국 대회로 원정을 가곤 했다.
작년을 끝으로 정년 퇴임하신 것으로 알고 있는데, 여전히 명예교수로 대학에서 강의도 하고 있고, ICPC 디렉터 역활을 앞으로도 계속 맡으시는 것으로 알고 있다. 


올해도 ACM-ICPC 대회가 무사히 끝났는데. 매년 느끼는 것이지만 사진을 보기위해서 홈페이지에 방문했다가 대회 공식 홈페이지의 불편한 사진 브라우징 인터페이스에 질려버렸다. 원하는 사진을 찾기도 너무 힘들고, 또 사진이 이미지가 작게 변환 되어서 업로드 되기에 원본 사진은 구할 길이 없다. 요즘은 flicker 를 비롯해서 다양한 사진 공유 서비스가 많은데 앞으로 대회 사진을 공유하는 것은 그런 곳을 이용해 보는 것이 어떨까 싶다. 그리고 사진들 중에서 시상식 사진이 한장도 없는 것도 아쉽다. 

그리고 매번 이야기 하는 것이지만 국내 ICPC 홈페이지가 개편되면서 과거 대회의 순위 기록들 ( 2004 년 부터  2009 년 까지 ) 이 사라져 버린 것도 대회의 역사를 보존하는 차원에서 볼때 정말 아쉬운 점이다. 대회 특성상 매년 대회 시즌이 임박해서야 몇 달간만 잠시 주목을 받는 사이트이다 보니 꾸준한 관리에는 여러 어려움이 많겠지만 그래도 이런 부분들을 좀더 신경썼으면 하는 바램이다.  

 
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/450 관련글 쓰기
댓글을 달아주세요!
이름 암호 홈페이지



2011 - 2012 시즌의 ACM-ICPC 의 지역예선이 시작된 관계로, 뒤늦게 지난 4월에 열렸던 2011 ACM-ICPC (세계 대학생 프로그래밍 경시대회) 의 세계결선 ( World Final ) 결과를 간략히 메모해 본다. 

이번 대회는 시작부터 꽤 우여곡절이 많았다. 원래 대회 개최지로 예정되었던 이집트가 내란으로 인한 혼란한 국내 정세로 인해서 결국 대회 개최가 취소되고, 결국 5월이 되서야 미국 올랜드에서 개최하는 것으로 결정되었다. ( 국내 출전 학생들은 이로 인해서 중간고사 기간이 겹쳐서 많은 고생을 했다고.. ) 

한편 ICPC 공식 사이트는 많은 발전을 거듭하여, 이제는 World Final 의 경우 전세계로 인터넷의 라이브 비디오를 통해 생중계가 된다. 그래서 대회장의 분위기를 잘 느낄수 있었다. 
이번 대회는 막판까지 그야말로 박빙의 양상이었고, 1997 년 이후 14 년 만에 미국팀이 우승을 차지할 수 있는 절호의 기회였으나 결국은 대회 종료 10분을 남기고 8 번째 문제를 푼 중국에 우승을 넘겨주고 말았다. 


- 최종 결과

Place Name
Solved
Time Last solved
1 Zhejiang University 8 1228 290
2 University of Michigan at Ann Arbor 8 1462 291
3 Tsinghua University 7 800 218
4 St. Petersburg State University 7 893 280
5 Nizhny Novgorod State University 7 938 273
6 Saratov State University 7 966 272
7 Friedrich-Alexander-University Erlangen-Nuremberg 7 1088 288
8 Donetsk National University 7 1155 289
9 Jagiellonian University in Krakow 7 1176 287
10 Moscow State University 7 1187 276
11 Ural State University 7 1345 296
12 University of Waterloo 7 1555 279
13 Carnegie Mellon University 6
13 Korea Advanced Institute of Science and Technology 6
13 Lviv National University 6
13 Nanyang Technological University 6
13 National Taiwan University 6
13 Peking University 6
13 Shanghai Jiao Tong University 6
13 Sharif University of Technology 6
13 St. Petersburg State University of IT, Mechanics and Optics 6
13 Taurida V.I. Vernadsky National University 6
13 The Chinese University of Hong Kong 6
13 Universidad de Buenos Aires - FCEN 6
13 University of Warsaw 6
13 Zhongshan (Sun Yat-sen) University 6
27 Belarusian State University 5
27 Fudan University 5
27 Harbin Institute of Technology 5
27 Kazakh-British Technical University 5
27 Kyoto University 5
27 Massachusetts Institute of Technology 5
27 Novosibirsk State University 5
27 Perm State University 5
27 South Ural State University 5
27 Taras Shevchenko Kiev National University 5
27 Tianjin University 5
27 Universidade Federal de Pernambuco 5
27 University of Electronic Science and Technology of China 5
27 University of Helsinki 5
27 University of Tokyo 5
42 Beijing Jiaotong University 4
42 East China Normal University 4
42 Indian Institute of Technology - Delhi 4
42 International Institute of Information Technology - Hyderabad 4
42 Moscow Institute of Physics & Technology 4
42 Pontificia Universidad Católica del Perú 4
42 Princeton University 4
42 Seoul National University 4
42 Swiss Federal Institute of Technology Zurich - VIS 4
42 Universidad Nacional de Córdoba - FaMAF 4
42 Universidade Federal do Paraná 4
42 Universidade de São Paulo - Escola Politécnica 4
42 Universidade de São Paulo - Instituto de Matemática e Estatística 4
42 University of Alberta 4
42 University of Stellenbosch 4
42 University of Wroclaw 4
42 Wuhan University 4




대회 우승팀, Zhejiang University 

Rejudge, OuyangJialin, moondy 의 한명의 레드와 두명의 옐로우 멤버로 구성되어 있는데, 사실 팀원 세 명이 모두 레드로 구성된 팀들도 있음에도 불구하고 이들 팀을 꺽은 것을 보면 역시 개개인의 실력 못지않게 팀웍이 중요하다고 생각된다. (그리고 약간의 운도.. ) 어쨌든 팀원 중에서 여성 코더가 있다는 사실도 상당히 놀랍다.  

그 밖에 기억나는 것으로 2위인 미국 University of Michigan at Ann Arbor 에는 대표적인 탑덕후중 한명인 msg555 가 있었는데 이 친구가 키가 엄청나게 큰 것은 처음 알았다. 2 미터가 훨씬 넘어 보인다. -_-;  

한국에서는 한국예선 우승팀인 KAIST 와 3위팀인 서울대학교가 참가해서 각각 13 위와 42 위를 기록하였다. 
 

참고 : ACM-ICPC World final 2010-2011

 
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/442 관련글 쓰기
댓글을 달아주세요!
이름 암호 홈페이지



온라인 프로그래밍 경시대회 사이트인 TopCoder 에서 주 단위로 개최하는 소규모 대회인 SRM ( Single Round Match; 75 분 동안 세 개의 알고리즘 문제를 푸는 TopCoder 의 온라인 프로그래밍 대회 ) 가 벌써 500 회를 맞이했다. 
 
TopCoder 가 SRM 을 시작한 것이 2001 년이니 햇수로는 벌써 만 10 년. 그동안 온라인 프로그래밍 대회 사이트가 여럿 있었지만 명확한 사업모델과 전세계의 고수들을 끌어모은 커뮤니티를 갖추는데 성공하여 상업적으로 가장 크게 성공한 곳이 바로 TopCoder 라고 생각된다. 

TopCoder 소개 

SRM 500 을 맞이해서 포럼에 Eeyore 라는 캐나디언이 "The Past and Present of Single Round Match" 라는 글이 올라왔는데. 흥미로운 내용이 많아서 간략하게 요약해 본다. 




내가 SnapDragon 을 처음 만난 것은 2002년 가을 University of Warterloo 졸업을 앞둔 시점이었다. 그는 ACM-ICPC 대회 준비를 도와주기 위해 학교를 방문하곤 했는데 함께 모의고사를 치루면 항상 1등을 차지하곤 했다. 그가 과격하게 키보드를 두드리면서 코딩을 하는 모습은 피아니스트가 베토벤의 광시곡을 연주하는 것 같았다. 한문자의 변수들과 괄호로 가득찬 그의 코딩 스타일은 암호문을 보는 것 같았다. 
그는 또한 거의 모든 게임 콘솔을 다 보유하고 있으면서 매일같이 몇시간씩 게임을 즐기는 게임광이기도 했다. 
"게임은 두뇌 발달에 좋아. 하지만 사람을 게으르게 만들기도 하지". 
현재 SnapDragon 은 Google 에서 근무하고 있다.  

SnapDragon 이 말하는 TopCoder 가 다른 프로그래밍 경시대회에 비해 갖는 장점은 문제의 스펙이 명확하다는 것, 그리고 대회마다 상금이 걸려있다는 것이다. 2001 ~ 2002 년 당시는 닷컴 버블의 막바지로 TopCoder 역시 많은 스폰서쉽을 받아 주당 2회씩 상금 매치가 열리곤 했다. TopCoder 의 사업모델이 컴포넌트 설계/개발에 치중하게 되고 SRM 의 상금매치가 없어지기 시작하면서 상금에 대한 매력은 줄어들었지만 SRM 은 여전히 전세계의 Problem Solver 들을 끌어모이고 있다. 

radeye 는 2002 년에서 2005 년 사이에 활발하게 활동했고 요즘도 이따금 SRM 에 참가한다. 그는 dvips 라는 유명한 DVI-to-PostScript 컴파일러의 개발자이자 LaTex Software Stack 의 개발자로도 유명하다. 최근에는 모든 루빅스 큐브는 최대 20회의 이동으로 풀수 있다 는 증명을 하기도 했다. 그는 TopCoder 의 알고리즘 문제 해결능력이 실제 프로젝트에도 도움을 주며, 자신의 프로그래밍 실력향상에 큰 도움이 되었다고 말한다. 

dangelo 는 2002 년부터 2005 년사이에 77 회의 SRM 에 참가했다. 그는 facebook 의 CTO 였으며 최근에 Facebook 을 떠나 소셜 Q&A 서비스인 Quora 를 설립했다. 자신이 Caltech 의 빡센 코스웍을 소화하기에 벅차서 SRM 참가가 뜸해졌다고 말한다. 그가 말하는 TopCoder 의 장점은 프로그래밍 경시대회를 통해 알고리즘을 빠른 시간에 적용하고, 설계하는 기술을 쌓을 수 있다는 것이다. 물론, 이 것 이외에도 현업에서의 프로젝트는 다른 여러가지 기술들도 필요하므로 이에 대해서 공부해야 한다고 조언한다. 

2005 년에는 2 명의 괴물이 등장한다. 이해 3월에 데뷔한 Petr 은 지금까지 Div1 의 Easy / Medium / Hard 각각의 문제 성공률이 96% / 93% / 85% 에 이르며 그의 230 번 매치중 136 번을 우승했다. ACRush 는 Petr 보다 8개월 늦게 데뷔했다. 그는 TopCoder 1등이 되기까지 치룬 79 번의 매치 중에서 30 번을 우승했다. 이 두사람은 모두 ACM-ICPC 월드파이널에서 2등을 한 경험이 있으며, Google Code Jam, Facebook Hacker Cup 등의 외부 대회에서 우승을 차지한 바 있다.  TopCoder Algorithm 랭킹 1위와 2위를 업치락 뒤치락 하는 이들이지만 ACRush 는 Petr 과 같은 라이벌이 있어서 무척 행복하다고 말한다. Petr 은 현재 Google 에서 근무중이다. 

dcp 는 2006년 4월에 데뷔한 이래 지금까지 201 번의 매치를 치뤘고, 데뷔 후 3년이 지난 137번째 매치에서 Div 1 에 올라선다. dcp 는 자신이 도달할 수 없는 구체적인 목표를 세우지 않는 대신 일주일에 5~6 문제를 푸는 정도의 스스로 달성가능한 목표를 세우고 있다고 한다. 매주 3-4 시간정도 연습한다는 그는 rating 에 크게 연연해 하지 않고 SRM 자체를 "정신적인 운동" 으로 즐긴다고 말한다. 

과연 SRM 이 이렇게 즐길만한 가치가 있을까? Minilek 은 MIT 3학년때 TopCoder 를 시작해서 이제 MIT 박사과정 졸업을 앞둔 학생이다. 그는 TopCoder SRM 의 옹호주의자이며 SRM 을 즐기는 사람 중 한명이다. 그에게 프로그래밍은 가장 즐거운 취미생활이며, 또한 TopCoder 는 취업 인터뷰에도 큰 도움을 주었다고 한다. Minilek 은 스스로에게 강요하지 않고 SRM 을 즐기는 것이 중요하다는 충고를 한다. 지금까지 193 회의 SRM 을 치룬 그는 첫 151 번의 매치에서 green 에서 red 로 점증적으로 rating 을 향상시켰다. Minelik 은 말하길 "자신이 즐길 수 있다면 많이 하게 되고, 자연스럽게 실력이 향상될 겁니다. 이건 재미있게 즐기는 거지 일 하는 것과는 다릅니다"

Olexiy 는 2005 년 8월 부터 2009년 2월까지 많은 문제를 출제하면서 SRM 의 코디네이터로 공헌했다. 그는 이후 ivan_metelsky 에서 자신의 자리를 넘겨주었다. Olexiy 는 과거와 현재의 SRM 에 대한 비교에 비해 SRM 의 문제들이 요새는 매우 어려워졌다는 점을 달라진 점으로 꼽는다. 요새TCO 2003 이나 2004 의 결승 문제가 SRM 에서 출제된다면 200 명 이상이 풀수 있을 것이라 한다. 그는 문제 출제자로서 누군가가 자신이 만든 문제가 정말 좋다고 칭찬할 때가 가장 즐겁다고 한다. 자신이 만든 문제중 가장 기억에 남는 문제로 TakeBus 를 꼽는다. Olexiy 는 현재 TopCoder 의 스탭으로 일하고 있다.

Rustyoldman 은 TopCoder에서 가장 나이가 많은 코더 중 한 명일 것이다. (자기 나이가 154 세라고 구라를 치고 있지만. 그의 진짜 나이는 아무도 모른다... 40 은 훌쩍 넘겼을 거고 50 이 넘었을 수도 있음.. ) 자신의 업무와 잠을 빼고는 SRM 이 자신의 생활에서 가장 중요한 일 중 하나라고 말한다. 하지만 흥미롭게도 그는 거의 연습은 하지 않는다 한다.

John.de.Ruiter 는 SRM 이 일종의 중독성이 있다고 말한다. 또한 그는 "나의 rating 은 나의 아이덴티티의 일부가 되었다" 는 표현을 쓴다. 많은 TopCoder 멤버들이 이렇게 느낄 것이다. 

사실, TopCoder 의 Algorithm Rating 이 나의 프로그래밍 실력을 정의한다고 생각하지는 않는다. 하지만 대회 환경이라는 압박감이 있는 제한된 환경에서 문제를 푸는 능력은 개발자로서 나의 아이덴티티의 중요한 부분이라고 생각한다.   

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/418 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon helloneo 2011/03/22 20:03  댓글주소  수정/삭제  댓글쓰기

    헉.. 저걸 다 번역하시다니.. ㅋㅋ
    SRM 500 room win 축하요~

  2. BlogIcon LiFiDeA 2011/03/25 12:21  댓글주소  수정/삭제  댓글쓰기

    제가 최근에 블로그에 쓴 (링크) Deliberate Practice라는 개념을 프로그래밍에 적용하면 위와 같을 것 같네요.

    글 잘 읽었습니다 ^^

이름 암호 홈페이지











금일 ( 10월 30일 ) KAIST 에서 열린 2010 ACM-ICPC (세계 대학생 프로그래밍 경시대회) 의 한국지역 대회 겸 제 10회 전국 대학생 프로그래밍 경시대회 결과입니다.




- 대회 최종순위 

Rank Team School Solved Time
1st Place RoyalRoader Korea Advanced Institute of Science and Technology 10 733
2nd Place nekonekosoft National Taiwan University 7 656
2nd Place BurgerKing Korea Advanced Institute of Science and Technology 8 1041
3rd Place reverse_iterator Seoul National University 7 748
4th Place d3sxp Kyoto University 7 819
5th Place Noname1.c Korea University 7 901
5th Place PENDING Seoul National University 7 1025
6th Place GalaxyS@POSTECH Pohang University of Science and Technology 6 693
6th Place const_iterator Seoul National University 6 501
6th Place Say Yes Seoul National University 6 605
6th Place Cogito Ergo Sum Seoul National University 6 825
7th Place Eternia National University of Singapore 6 906
8th Place TRIPLE-CORE Hanyang University 5 505
8th Place PS02 Korea Advanced Institute of Science and Technology 5 392
9th Place C-art@SEED Korea University of Technology and Education 5 800
9th Place Madonna Seoul National University 5 548
9th Place Gopdeung-E Seoul National University 5 567
9th Place ForTheBuffet Korea Advanced Institute of Science and Technology 5 592
9th Place Bulgom@POSTECH Pohang University of Science and Technology 5 676
9th Place ITgirls Korea Advanced Institute of Science and Technology 5 722
9th Place JoyKing Hanyang University 5 775
10th Place libe.py Ajou University 4 281
10th Place DeathGrip@POSTECH Pohang University of Science and Technology 4 192
10th Place 22:22 Korea Advanced Institute of Science and Technology 4 215
10th Place TRAP CARD Seoul National University 4 254
11th Place Emiya Muljomdao Yonsei University 4 390
11th Place HappyHacking Korea Advanced Institute of Science and Technology 4 316
11th Place NiKongGa Ajou University 4 382
12th Place AUTOTECH Inha University 4 407
13th Place 3Master University of Seoul 4 462
13th Place Time2coding Inha University 4 572
13th Place NND Korea Advanced Institute of Science and Technology 4 582
13th Place Nac to the Ta Korea Advanced Institute of Science and Technology 4 676
13th Place codecide@POSTECH Pohang University of Science and Technology 4 764
13th Place PS11 Korea Advanced Institute of Science and Technology 4 829
14th Place EE! Sogang University 3 168
15th Place LAST_SCCC Soongsil University 3 173
16th Place Budae_Toast Pusan National University 3 205
16th Place Slave Chaser Yonsei University 3 177
16th Place Ganpan of Hanyang Hanyang University 3 197
17th Place OctoberSky Inha University 3 250
17th Place BNJ_SCCC Soongsil University 3 292
17th Place HotChar Sogang University 3 275
17th Place Ewha 3Gs Ewha Womans University 3 310
18th Place Andromeda@DNA Dongguk University 3 553
18th Place aplus Hanyang University 3 416
18th Place codriver@POSTECH Pohang University of Science and Technology 3 443
18th Place Untitled1.cpp Korea University 3 797



algospot 중계진의 영상 / 문자 중계 덕분에 재미있게 관전할 수 있었다. 

KAIST 의 2 년 연속우승으로 2010 년 ACM-ICPC 한국지역 대회가 끝났다.
우승팀인 RoyalRoader (이하 RR) 는 작년도와 동일한 팀 구성으로, 작년에 대회 중반까지 1 위를 달리다가 같은 학교 팀에게 역전을 허용하면서 최종 순위 3 위에 그치며 WF 출전도 실패했던 설움을 씻어냈다. 특히 2 위 그룹과 3 문제차이로 모든 문제를 다 풀면서 우승. ICPC 한국지역 대회 11년 역사상 가장 압도적인 성적으로 우승을 차지한 팀으로 기록된다. 2위 팀이 7 문제로 대회를 끝났는데 RR 은 3 시간이 되기 전에 10 문제를 다 풀었으니...;;;

RoyalRoader 란 스타 리그에서 유래한 표현으로, 스타리그에 처음으로 출전한 선수가 대회 우승을 차지하는 경우를 말한다.

참고 : 양대 리그의 역대 로열로더   김동수, 임요환, 이윤열, 마재윤(이라 쓰고 마조작이라 읽는다) 등 한시대를 풍미했던 스타들이 포함되어 있다.

작년도에 첫 출전했던 RoyalRoader 팀은 당시 KAIST 1학년 위주로 구성된 팀으로, 1학년들이 첫 출전으로 우승까지 노리는 마음으로 팀 명을 "RoyalRoader" 로 지은 듯 하다. 결국 두번째 대회에서 훌륭한 성적으로 우승을 차지했고, 내년 2월에 이집트에서 열릴 세계 결선에서의 성적도 매우 기대가 된다.

그 밖에 대회 시상식에 대한 문자중계는 이곳 에서 볼 수 있고, 대회 전체에 대한 문자 중계는 여기 를 보면 된다.
대회 결과를 간략하게 정리 하자면.


제 10 회 전국 대학생 프로그래밍 경시대회 결과
대상 - KAIST(RoyalRoader)
금상 - 서울대(reverse_iterator) / 고려대 (Noname1.c)
은상 - 한국 기술교대(C-art@SEED) / 한양대 (TRIPLE-CORE) / 포항공대 (GalaxyS@POSTECH)
동상 - 서울시립대 (3Master)  / 연세대 (Emiya Muljomdao) / 인하대 (AUTOTECH) / 아주대 (libe.py)

NHN 특별상  - KAIST (BurgerKing) / 서울대 (Pending)
넥슨 특별상 - KAIST (IT girls) / 서울대 (const_iterator)

ps ) 대회 공식 홈페이지인 http://acm.kaist.ac.kr 게시판을 둘러보다가 깨달은 사실인데, 홈페이지가 개편되면서 2004 ~ 2009 년 대회까지의 과거 ICPC 한국지역대회 기록은 출제문제만 남아있고, 대회 결과 기록은 없어져버렸다. ACM-ICPC 대회 공식사이트 ( http://icpc.baylor.edu ) 에서도 과거의 지역대회 결과는 찾기 어려운 상황인데... 기록 보존의 차원에서 보면 좀 아쉽다.


저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/397 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon limited10 2010/11/03 18:44  댓글주소  수정/삭제  댓글쓰기

    ICPC에 오랜만에 글이 올라왔네요 ^^

  2. BlogIcon Megalusion 2010/11/17 15:11  댓글주소  수정/삭제  댓글쓰기

    RoyalRoader는 1학년 3명은 아니고 1학년 2명과 2학년 1명인 것으로 알고 있습니다.

  3. BlogIcon CIalIS 2011/10/11 02:03  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사! ㅎㅎ
    좋은 하루 되세요.^^

이름 암호 홈페이지




앞서 포스팅 한 "뉴욕의 프로그래머" 라는 책에서 언급하고 있는 이야기 중 하나이다. 
원래 이것은 조수아 블로흐( Joshua Bloch ) 라는 유명한 소프트웨어 엔지니어가 구글랩 블로그에 올린 글에서 유래하는 이야기이다.  조수아 블로흐는 자바 플랫폼의 유명한 개발자이자 Effective Java (2001년 Jolt Award 수상작)  의 저자이기도 하다. 현재 구글에서 자바 아키텍트로 근무중.

글의 원문 : Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken

저자가 카네기멜론 대학의 박사과정에 입학해서, 알고리즘 수업을 듣던 첫날, 존 벤틀리 교수 (Jon Bentley, Programming Pearl 의 저자, 국내에는 "생각하는 프로그래밍" 이란 책으로 번역. ) 가 학생들에서 이진검색을 구현해 보라고 시킨 후에 그중 몇명을 앞에 나와서 발표하라고 했을 때의 충격을 아직도 기억하고 있다고 쓰고 있다. 물론, 당연하게도 ^^, 대부분의 학생들이 구현한 이진검색은 버그가 있었다.

문제는 자바 라이브러리에 기본으로 포함되어 있던 이진검색 조차도 버그가 숨어있었다는 것이다. 아래 글을 읽어보면 왜 20 여년간이나 이 버그가 쉽게 발견되지 않았는지에 대한 설명이 있다. 수십년간 사람들이 아무 문제없이 써오던 대중적인 라이브러리에도 이와같이 숨어있는 버그를 지적하면서 Bug-Free 소프트웨어가 얼마나 힘든 것인지를 말하고 있다.

최근까지 Java.util.Arrays 에 포함되어 기본 라이브러리로 제공되던 바이너리 서치의 코드는 아래와 같다.


자, 이 코드의 어떤 부분에 버그가 있을까..

정답은 아래 라인이다.

만약 low 와 high 가 충분히 큰 숫자라서 이 두수의 합이 integer 의 범위 ( 32 비트의 경우 2,147,483,648 ) 를 넘어서게 되면 결국 Overflow 가 발생하게 된다. 그래서  이 부분에서
mid 값을 배열 a 의 인덱스로 사용한 부분에서 배열의 잘못된 인덱스로 접근하게 되어 생기는 
ArrayIndexOutOfBoundsException 에러가 나게 된다.

 * 주의사항 : 조수아 벤틀리는 원문에서 두 양수의 합이 Overflow 가 나는 경우 그 결과는 음수가 되어 배열의 인덱스를 음수로 접근하게 되어 ArrayIndexOutOfBoundsException 에러가 난다고 쓰고 있으나, 후에 덧글을 통해서 C99 스펙의 경우 signed integer 의 두 수의 overflow 의 경우 항상 음수가 되는 것은 아닌 undefined 가 된다고 수정하고 있다. 어쨌든 에러는 에러이다... ^^ ;

조수아 벤틀리는 이 라인을 아래와 같이 고치는 것이 좋겠다고 쓰고 있다. ( C / C++ 의 경우 )
 
참고로 비트연산자 >> 1 은 /2 와 같다. >> 1 과 같이 비트연산으로 계산을 할 경우 /2 보다 조금 더 빠르다. ;)

- 그런데, 조수아 벤틀리가 제시한 저 수정안도 low 와 high 의 값의 합이 unsigned int 의 범위를 넘게 된다면 여전히 Overflow 문제가 생길 수 있다... -_-;  결국 ASSERT 등을 사용해서 인덱스의 범위 내에서만 사용이 가능하도록 제약을 걸거나, Overflow 를 피하려면 여유있게 long long 과 같은 64 비트 변수를 쓰는 것이 보다 안전할 것 같다.


저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/382 관련글 쓰기
댓글을 달아주세요!
  1. 김훈동 2010/06/30 12:59  댓글주소  수정/삭제  댓글쓰기

    위 내용하고는 다른 내용인데..
    최근에 발견한 win32 api 버그는 머냐면... 소켓통신 관련된 모듈인데..
    xp 에서는 잘되는 놈인데... vista 랑 windows7 에서는 버그가 있더라고..왜그러나 하고 디버깅을 해보니까...
    ip 를 처리하는 모듈이 vista 이상의 os 에서 default 로 활성화 되어 있는 ipv6 땜에 ipv6 로 ip 를 받았다가
    내부적인 코드에서 문제가 발생하고 있더라고...

    또 하나 위하고는 다른 내용인데...
    아폴로 XX 호 던가... 그 40초만에 로켓트가 터져버린 사건...
    그사건의 원이이 바로.. 저런거 때문이었었다지.... 하드웨어적인 결함이 아닌 숫자형 type 하나를 잘못쓰는것으로 인하여
    로켓트가 폭발해버리는..

    • BlogIcon soyoja 2010/07/08 01:46  댓글주소  수정/삭제

      오호... 그런 일이 있었군...

      근데 그 공중폭팔한 아폴로 호는 내가 듣기로는 연료 계통에서 문제가 있어서 폭팔했다고 하던데.. 소프트웨어 문제도 있었낭..??

  2. BlogIcon hyperdash 2010/07/03 00:37  댓글주소  수정/삭제  댓글쓰기

    포스팅이 프로그래밍 관련 일색이구나....

    일상에서는 포스팅 할 것이 없어진 것이냐...

    • BlogIcon soyoja 2010/07/08 01:47  댓글주소  수정/삭제

      있긴한데 요새 자꾸 게을러져서...

      그리고 그냥 공부하는 거 가끔 블로깅 하는게 나한테 맞는 거 같아서...

      개인적인 이야기 블로그에 올리는 건 별로 안좋아해서..

  3. 2010/07/13 23:36  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

이름 암호 홈페이지




친구들이 좋은 답변을 해 줬는데..

일단 정답들은 다음과 같다.

1. 임의의 원소들을 갖고있는 A 와 B 의 두 집합 (set) 이 있다. A 가 B 의 부분집합인지 여부를 확인하는 방법에 대해 설명하시오. ( 책에서는 세가지 해법을 소개했다. )

- A 의 원소의 갯수를 m, B 의 원소의 갯수를 n 이라 할 때.

정답 1 ) 가장 무식한 Brute Force 방법.  A 의 모든 원소에 대해서 루프를 돌면서 각각의 원소들이 B 에 존재하는지를 검사한다. A 와 B 에 대해서 이중 루프를 돌기 때문에 시간 복잡도는 O(m*n) 이 된다.

정답 2 ) A 와 B 를 정렬한 다음에 1 과 같은 작업을 수행한다. 정답 1 과 다른 점은 A 의 i 번째 원소에 대해서 B 에서 존재하는 지를 찾았을 경우 ( 이때 발견한 B 의 인덱스를 j 라 하면 ),  그 다음번 검색은 A 의 i+1 번째 원소부터 B 의 j 번째 인덱스에서 검색 작업을 시작하기 때문에 정답 1 처럼 매번 A 와 B 에 대해서 전체 루프를 돌 필요가 없다는 점이다.( 중복이 없을 경우 j+1 번째 인덱스 부터 시작. 이 내용들을 책에서는 그림을 그려가면서 몇페이지에 걸쳐서 설명하고 있는데 여기에서는 이정도만 써도 이해하리라 믿고... )
이 경우 시간복잡도는 A 와 B 를 정렬하는데 소요되는 O(mlongm + nlogn) 이 된다.
사실 이 문제는 도널드 크누스 교수가 "정렬과 검색" 의 관계에 대해서 설명하기 위해서 처음 고안해 낸 문제라 한다. "대부분의 데이터는 정렬을 할 경우 검색 작업이 매우 쉬워진다" 는 것인데, 사실 얼핏 보기에 당연해 보이기도 하지만 나는 저 이야기를 완전히 이해하는데 오랜 시간이 걸렸다. -_-;

정답 3 ) 해쉬를 이용한다. 즉, B 를 모두 해쉬 자료구조에 담아놓은 후, A 가 B 에 속하는지 여부만 검사하면 된다. 해쉬 자체의 시간복잡도는 O(1) 이지만 B 의 원소 전체를 해쉬에 담기 위한 과정 ( 시간복잡도 O(n) ) 과 A 의 모든 원소가 해쉬 내에서 존재하는지를 검사하기 위해서 A 의 원소 전체를 한번 검사하는 과정 ( 시간복잡도 O(m) ) 이 소요되므로 전체 시간복잡도는 O(m+n) 이 된다.
정답 3 의 경우 정답 1, 2 에 비해서 상대적으로 빠르지만 해쉬 테이블의 크기 만큼 메모리를 사용하는 trade off 가 있다는 것도 알아두어야 한다.

이 문제를 굳이 블로그에 포스팅 한 이유는 이상의 세가지 방법 이외에 혹시 다른 방법은 없을까 하는 생각에서 글을 올린 것이었다.
사실 이 문제를 처음 읽었을때 저 세가지 방법 정도만 생각이 났었고 책에서도 세가지의 해법만 제시했었지만 잘 생각해보면 다른 해법도 있지 않을까 하는 생각이 든다. 혹시 다른 아이디어가 있으신 분은 댓글로 달아 주시면 감사하겠다..

2. 물컵안에 물이 들어있다. 다른 어떠한 도구도 사용하지 않고 이 물컵의 물이 절반이 되는지를 확인하는 방법은 무엇일까? 

정답은 컵을 기울여서 컵의 물이 아래와 같이 되는지를 보고 판단하면 된다. 즉, 컵을 기울여서 물이 컵 입구 끝에 도달했을 때 반대편 끝이 컵의 바닥 모서리에 닿는지 여부를 보면 된다.


책에 삽입된 그림에서 가져옴.



저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/379 관련글 쓰기
댓글을 달아주세요!
  1. 김훈동 2010/06/22 17:44  댓글주소  수정/삭제  댓글쓰기

    ㅇㅇ.... 1번의 Brute Force 만 언급 안했고 ,1번 2번 다 맞춘거 같긴 한데.. 1번의 2번째 알고리즘을 나는 정렬은 시간복잡도 계산 빼고..정렬된 데이타에 대한 검색복잡도를 N+M 이라 했는데..이 저자는 m+n 은 빼버리고 검색에 대한 시간복잡도를 써놨네... 검색까지 넣으면 검색후에도
    이중포문은 아니지만 1중 포문 안에서 N 의 인덱스를 scan 해서 M 과 포인터를 맞춰가며 진도가 나가니까
    O( mlongm + nlogn + m + n ) 이어야 하지 않나? 정렬과 스켄을 동시에 하긴 힘들거 같은뎅..

    • BlogIcon soyoja 2010/06/23 08:49  댓글주소  수정/삭제

      Big O 표기법상 시간복잡도는 가장 높은 차수만 표시하니까 O( mlogm + nlogn + m + n ) = O( mlogm + nlogn ) 이 되는거지... ;)

이름 암호 홈페이지



지난 2월 1 - 5일, 중국에서 ICPC 세계 결선이 열렸다.
조금 지난 뉴스이기는 하지만. 기록을 위해서 남겨둔다.
www.acm.org 의 공식 뉴스 릴리즈를 번역해 보았다.


Chinese, Russian teams take top spots
중국과 러시아 팀이 상위권을 차지

Students from Shanghai Jiaotong University have been named the 2010 ACM International Collegiate Programming Contest (ICPC) World Champions. Moscow State University, National Taiwan University, and Taras Shevchenko Kiev National University followed in the second, third and fourth ranked positions, with all four teams being honored with Gold status recognition. 

상해교통대 학생들이 2010 ACM International Collegiate Programming Contest (ICPC; 세계대학생 프로그래밍 경시대회) 에서 세계챔피언이 되었다. 모스크바 주립 대학, 대만국립대, Taras Schevchenko 키에프 국립 대학이 그 뒤를 이었으며, 이상 네 팀이 금메달을 수여받았다.

                                                                     우승 : Shanghai Jiaotong University.
 

The competition, sponsored by IBM, took place February 1 to 6 at Harbin Engineering University in Harbin, China. 

IBM 이 후원하는 이 대회는 2월 1일부터 6일까지 중국 하얼빈 공대에서 개최되었다.

Referred to as "The Battle of the Brains," the ACM ICPC World Finals challenged the world's top 103 university teams to use open standard technology in designing software that solves real-world problems. Each team of three students faced 11 problems of varying levels of difficulty. The contest problems were modeled after real-world issues such as developing programs which will predict where rain water from tsunamis and hurricanes will accumulate. In five short hours, students solved more than a semester's worth of computer programming material. 

"두뇌의 전투" 로 불리는 ACM ICPC 세계 결선은 전세계 103 개 대학의 팀이 실 세계와 관련된 문제를 해결하는 능력을 겨루었다. 3명의 학생으로 구성된 각 팀은 다양한 난이도의 11개 문제를 풀어야 한다. 대회에 출제된 문제는 실 세계에서 벌어진 이슈들과 관련된 문제 - 예를 들면 쓰나미와 허리케인의 강우량을 예측하는 문제 - 들을 푼다. 5 시간의 짧은 대회 시간 동안 학생들은 학기중에서 배운 컴퓨터 프로그래밍 교재에 나오는 것 이상의 문제를 해결해야 한다.

Learn more about the 2010 ACM ICPC and all of the team rankings.

- Official Final Standing  (출처 : algospot.com)

파란색은 한국인 학생이 포함된 팀.
붉은색은 한국팀.

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/362 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon hyperdash 2010/03/07 23:34  댓글주소  수정/삭제  댓글쓰기

    숭실대는???? 숭실대는 없는거야?

이름 암호 홈페이지



11월 13일 미국 캘리포니아 구글 본사에서 구글이 주최하는 프로그래밍 대회, Google Code Jam 2009 의 결승전이 열렸다. 전세계 각지에서 온라인 예선을 거친 최종 25 명의 Finalist 들이 참가하여 4 시간동안 진행되었다.


Announcing the winner of Google Code Jam 2009

Announcing the winner and champion of Google Code Jam 2009: China's Lou TianCheng, *ACRush*!  He takes home $5,000 and the title of Code Jam champion!

In second place came China's Qi ZiChao (*qizichao*); and our third-place finisher was Japan's Iwata Yoichi (*wata*).


ACRush (칭화대 3학년) 는 2008 년 대회에 이어 2009 년 GCJ 까지 2 년 연속 우승이다.
올해 ACM-ICPC 세계 결선에서 2 등에 그친 한을 여기서 푸는가 -_-;
문제는 결승전 스코어. 2위에 비해 거의 더블 스코어로 완전히 Dominate 한 모습을 보여줬다. ㄷㄷㄷ

사용자 삽입 이미지
GCJ 2009 결승전 Score Board.  작년( 3시간동안 5 문제 ) 과 달리 4시간동안 6 문제를 푸는 것으로 대회가 확장되었다.
 "May the best coder Win" 이란 문구가 인상적...

Google Code Jam 2009 문제 보러가기


ps ) 올해 GCJ 2009 에 한국인 출전자는 한명도 없었다. 결선 T/O 가 25 명 ( 작년 대비 1/4 로 줄었음 ) 뿐이라서 정말 바늘구멍이었는 듯...

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/345 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon Hyperdash 2009/11/17 13:15  댓글주소  수정/삭제  댓글쓰기

    헛.. 짱골라가 1, 2위를 차지하다니...

이름 암호 홈페이지





제 9회 대학생 프로그래밍 경시대회와 함께 열린, 2009 ACM-ICPC Asia Regional Contest - Seoul 대회 결과가 나왔다.
 
출처 : http://acm.kaist.ac.kr





Result


Rank School Team Solved Time
1 KAIST Nondeterminist 9 1547
2 Seoul National University rand() 9 1696
2 KAIST RoyalRoader 8 739
3 Hong Kong University of Science and Technology HKUST_Optimus Prime 7 688
3 Seoul National University srand() 7 1193
4 Pohang University of Science and Technology POSCAT@POSTECH 7 1280
5 Jilin University rejojer 7 1284
6 National Taiwan University ilphuber 6 759
6 Seoul National University Billy Herrington 6 992
7 Sogang University SNSD 6 1015
8 Soongsil University SCCC.BM 5 885
9 Chiao Tung University Tsukamoto Yakumo 5 1015
9 Seoul National University juliette 4 376
9 KAIST PS06 4 610
9 KAIST Lollipop 4 740
9 Soongsil University Olleh 4 859
10 KAIST Mark_1_17 3 182
10 Pohang University of Science and Technology JBPark@POSTECH 3 205
10 Pohang University of Science and Technology NEWBIE@POSTECH 3 326
10 KAIST Strawberry Season 3 3 372
10 Pohang University of Science and Technology java@POSTECH 3 439
10 Korea University Yuna_Kim 3 479
10 Korea University DaTulRae 3 485
11 Chonbuk National University AL++ 3 493
11 KAIST PS07 3 545
12 Kwangwoon University No-Name 3 567
12 Soongsil University SCCC.ssu.ac.kr 3 607
13 Kyung Pook National University Effective ACM 3 639
14 Inha University I Sell Fish 3 703
14 Soongsil University Beauty & Beast 3 801




Honorable Mentions


School Team
Ajou University ansi://5+5+5=550/
Ajou University ansi://newb_newb/
Andong National University A.C.E
Chonbuk National University CNP
Chonnam National University minganin
Chosun University HotIssue @ CAC
City University of Hong Kong Apprentices
Dong-A University 5duckhoo
Dongguk University DNA
Ewha Womans University QWERTY
Hankuk University of Foreign Studies Over3P
Hanyang University Border of Accepted
Hanyang University Hyking
Hanyang University HYUman
Hanyang University Project A.
Hanyang University SKIP
Inha University autoinput
Inha University YesMan
KAIST BlueAngel
KAIST CodingLikeAPoet
KAIST PS11
Kongju National University Defacto
Kookmin University DAE_IN_BAE
Kookmin University KimJungKim
Kookmin University SO_IN_BAE
Korea University of Technology and Education KUTP'S
Kumoh National Institue of Technology Algo-10-Da
Kyonggi University IntMasters
Kyung Hee University Password 902
Pusan National University BOO
Pusan National University EastGuard
Pusan National University Gogosing
Pusan National University Ground Homerun
Pusan National University PNU6514
Sejong University Throw Up
Seoul National University gg
Seoul National University Strong Baby
Sogang University Johannes Krauser II
Sogang University lychee
Soongsil University rw+
SungKyunKwan University SSEITS
The Catholic University of Korea Circle of Healing
University of Seoul HamnEgg
Yonsei University Decade
Yonsei University We don't major in CS



제 9회 대학생 프로그래밍 경시대회 수상 결과 ( 출처  : algospot.com )

NHN 특별상

KAIST -  Royal Roader

서울대 - srand()


동상

전북대 - AL++

인하대 - I Sell Fish

경북대 - Effective ACM

광운대 - No-Name


은상

고려대 - Yuna_Kim

서강대 - SNSD

숭실대 - SCCC.BM


금상

포항공대 - POSCAT@POSTECH

서울대 - rand()


대상

KAIST - Nondeterminist!



2003 년 이후 우승을 못하던 KAIST 가 6 년만에 다시 우승을 차지하면서, 서울대의 최근 3 년 연속우승에 종지부를 찍었다. 개인적으로는 Royal Roader 를 우승후보로 꼽았었는데. 4 시간이 지날때까지 Royal Roader가 1위를 차지하다가 막판에 순위가 뒤집혀버렸다. ㅋ

대회 수준은 꾸준히 향상되고 있고 참가팀들의 수준도 점점 상향평준화되는 느낌이지만, 서울대와 KAIST 의 아성은 여전히 굳건하다... ICPC 서울대회 10년간 2005년에 중국팀이 한번 우승한 것 빼고는 저 두 학교가 번갈아가며 우승을 해 왓는데, 이게 언제까지 이어질지 관심사다. 그나저나 올해는 넥슨이 스폰서에서 빠지면서 수상팀도 줄었다. 스폰서쉽이 더 늘어나야 할 판에 줄어들다니... 이것도 경제위기의 여파인가.

링크

2009 ACM ICPC KAIST 1등
ACM-ICPC 참가후기 (이현섭 작성)
제 9회 대학생 프로그래밍 경시대회 은상







크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/343 관련글 쓰기
  1. 2009 ACM-ICPC Asia Regional Seoul Site 후기 (대학생프로그래밍경시대회)

    FROM 당신을 위한 최고의 감탄사 섭!! 2009/11/20 02:36  삭제

    기다리고 기다리던 서울대회를 무사히 마쳤다. 걱정도 많았고 고비도 많았던 이번 팀워크와 학교 대표라는 부담감 때문에 좋은 성적을 거둘 수 있을까 고민했지만. 그래도 괜찮은 성적을 거두어서 다행이다. 목표는 달성하지 못했지만... 실력대로 나온 순위인것 같다. 가장 아쉬운건 이번 대회에서 넥슨이 스폰서에서 빠졌다. 이유가 뭘까.. 기대했던 것보다 대회에 실망이 큰 것일까? 회사 사정이 좋지 않아 여유가 없던걸까.. NHN에서도 기념품이 좀 적어지고,..

댓글을 달아주세요!
  1. winner 2009/11/10 11:29  댓글주소  수정/삭제  댓글쓰기

    올해 대회문제 수준이 어떤 것 같으신가요?
    솔직히 저는 인터넷 예선의 문제와 결과를 보고 오히려 전체 수준은 떨어진게 아닌가 싶었습니다.
    최근 몇년간 상향평준화되어가고 있다는 것은 동의하지만 올해는 예외가 아닐런지...

  2. winner 2009/11/10 11:30  댓글주소  수정/삭제  댓글쓰기

    아... 인터넷예선에 대한 제 생각이고, 실제 본선의 문제는 안 봤습니다.
    그런데 Chiao Tung 대학이 뭐하는 대학인가 찾아보다가 들어왔습니다.
    팀이름이 좀 놀랍더라고요.

  3. BlogIcon soyoja 2009/11/10 13:04  댓글주소  수정/삭제  댓글쓰기

    작년보다는 어렵다는 것이 중계하던 분들의 공통된 의견이었습니다.
    작년에 만점팀이 나오는 바람에 올해는 작년보다 어렵게 문제가 나올 것이라는 것은 충분히 짐작할 수 있던 사항이었져...
    출제위원 분들은 올해 정도의 난이도와, 올해 정도의 결과에 매우 만족했다고 합니다. - 만점팀이 나오지 않되, 모든 문제가 풀렸고, 모든 팀들이 1 문제 이상은 풀었습니다. 수상팀들을 배정하기에도 적당 ( 모든 수상팀이 3 문제 이상 풀었져.. 2문제를 HM 로 끊기 딱 좋았음 ) 한 결과라서 앞으로도 이런 경향으로 가지 않을까 싶네요.

  4. BlogIcon hyperdash 2009/11/13 00:12  댓글주소  수정/삭제  댓글쓰기

    숭실대가 곳곳에 보이는군.... ㅎㅎㅎ

    넥슨 요새 매출이 줄어든 모양이군...

이름 암호 홈페이지


얼마전 에서 국내 Online Judge 가 별로 없다고 한탄하는 글을 썼지만...
최근에 우연히 알게 된 국내 Online Judge 2개...

http://www.dovelet.com 

디자인이나 구성이 개인 사이트틱 하지만 문제 분류등은 상당히 잘 되어 있고 난이도 별로 문제가 배치되어 매우 교육적인 느낌이 풀풀 풍기는 사이트. 전체적으로 USACO 를 많이 참고하여 제작한 듯.
문제들이 모두 한글로 되어 있어서 KOI 준비하는 학생들에게 상당히 좋아 보임.
문제별 카테고리를 나누어 놓고 이를 총 30 단계로 분류하고 중간마다 알고리즘 튜토리얼 문서가 있는 형식은 USACO 와 매우 유사.
전체적으로 쉬운 문제들이 많아 보이기는 하지만... 수록된 문제 갯수도 수백문제는 되어 보인다.
제출 시 각 테스트테이스별 성공 여부를 보여주고 실패한 테스트 케이스를 보여주는 방식 역시 USACO 와 동일.
C/C++/Java 지원

http://hello-world.co.kr

이 사이트의 장점은 다른 Online Judge 에서 볼수 없는 풍부한 언어지원.
C/C++/Java/Pyhon/C#/PHP/Perl/Visual Basic 까지 지원된다!
특히 기존의 다른 Online judge 에서 구할 수 없었던 ICPC 서울 대회의 온라인 예선 문제가 여럿 수록되어 있어서 좋았다.
( 안타깝게도 예선 문제들 중에서도 비교적 쉽고 해법이 잘 알려진 문제들만 있다. 운영자가 자기가 풀어본 문제만 올린 것일지도...  -0-;; )
수록된 전체 문제 숫자가 이 글을 쓰는 현재 54 문제밖에 안될 정도로 너무 적고, 최근에 사이트 업데이트가 잘 안되고 있다는 점이 단점.

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/332 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon 이규호 2009/10/09 00:11  댓글주소  수정/삭제  댓글쓰기

    dovelet 운영자 입니다.

    아직 허접한 사이트를 이렇게 좋은 평을 해 주셔서 감사합니다 :-)
    더 열심히 하라는 이야기로 알겠습니다.

    • BlogIcon soyoja 2009/10/12 11:23  댓글주소  수정/삭제

      제 맘대로 써놓은 평인데... 불쾌하게 생각하지 않고 너그럽게 봐 주셔서 감사합니다. 좋은 사이트 만들어 주셔서 늘 고맙게 생각하고 있습니다.

이름 암호 홈페이지



알고리즘 수업시간에 소개받은 문제.

어딘가에서 한번 들어본 적은 있긴 한데... 수업시간에 다시 배우니 아주 새롭다.

1975 년 Steve Selvin 이라는 수학자가 처음 소개한 이래 학자들 사이에서 한동안 많은 논란이 일었던 파라독스 문제라 한다.

문제는 다음과 같다.
당신은 어느 게임쇼에 참가하였다. 이 게임쇼에서는 3 개의 방이 있고 각각의 방 뒤에 임의의 2 곳에는 염소가 있고 나머지 한 곳에는 자동차가 있다. 참가자는 이중 어느 한 방을 선택해서 열어볼 수 있다. 게임쇼의 룰에서는 참가자가 자동차가 있는 문을 선택해서 연다면 이 자동차를 상품으로 받을 수 있고, 염소가 있는 방을 선택해서 연다면 "꽝" 이 된다. 당신이 어떤 방을 열지 결정한 상태에서, 사회자가 당신이 선택하지 않은, 염소가 있는 어느 한 방을 열어서 보여 주면서 당신이 결정한 방을 바꿀 수 있는 기회를 준다고 하자. 이때 처음의 결정을 번복하고 다른 방을 선택하는 것이 좋을까? 아니면 그냥 처음 결정했던 방을 그대로 선택하는 것이 좋을까?


"Suppose you're on a game show, and you're given the choice of three doors: Behind one door is a car; behind the others, goats. You pick a door, say No. 1, and the host, who knows what's behind the doors, opens another door, say No. 3, which has a goat. He then says to you, "Do you want to pick door No. 2?" Is it to your advantage to switch your choice?"

사용자 삽입 이미지


얼핏 생각할 때는 선택을 번복하던 번복하지 않던 별 차이가 없어 보인다. 그래서 이 문제가 소개된 이후 한동안 학자들 사이에서도 논란이 있었단다...
.
.
.
.
.
.
.
.
.
.










답은, 선택을 바꾸어서 다른 방을 열어보는 것이 66% 의 확률로 자동차가 있는 방을 선택할 수 있다.  그 이유는 아래와 같다.

참가자는 1, 2, 3 번과 같이 방을 선택할 수 있다. ( 이 경우 차를 선택할 확률은 33% ) 그가 자신의 결정을 번복하지 않는 다면 어쨌든 차를 선택할 확률은 33.3% 가 될 것이다.

그런데 결정을 번복하는 경우는 아래와 같이 된다.
사용자 삽입 이미지
 그림 출처 : Wikipedia


위 그림은 참가자가 처음에 어느 방을 선택했는데, 게임 쇼 진행자가 염소가 있는 방을 보여주었을 때, 선택한 방을 바꾼 경우를 설명하고 있다. 1 번과 같이 처음부터 차가 있는 방을 선택했다면, 선택을 바꿀 경우에는 차를 얻을 수 없다. 반면에 2 와 3 처럼 처음에 염소가 있는 방을 선택했다면, 선택을 바꿀 경우 차를 얻을 수 있다. 결국 선택을 바꿀 경우에는 위의 그림처럼 차를 얻을 확률이 2/3 = 66.6% 가 된다.

교수님의 설명은, 게임 쇼 진행자가 염소가 있는 방을 보여주고, 참가자가 이 것을 본 상태에서 자신의 결정을 번복한 것은 결국 참가자가 방을 두 번 선택한 것과 같은 효과가 있다고 볼 수 있다는 것이다. 그러므로 이 경우 확률은 2/3 이 되는 것이다.


ps ) 이번 학기에 수강중인 "알고리즘 분석" 이란 과목이 있는데... 이제 2 번 들었을 뿐 이지만 아주 대만족이다. 금년에 새로 부임하신
교수님 수업인데...  매 수업시간마다 알고리즘으로 해결 가능한 문제들도 많이 소개를 해 주시고, 각 알고리즘에 대한 증명과 문제점들에 대해서 생각해 보는 시간을 가지면서 명쾌하게 진행하신다. 수강인원도 단 3 명 뿐이라서 거의 개인과외 수준으로 배우는 느낌이다 ㅋㅋ


http://en.wikipedia.org/wiki/Monty_Hall_problem
크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/331 관련글 쓰기
댓글을 달아주세요!
  1. 2009/09/15 23:32  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. 고글 2009/09/15 23:50  댓글주소  수정/삭제  댓글쓰기

    영화 21에서도 나왔던 문제~

  3. 2009/09/16 00:13  댓글주소  수정/삭제  댓글쓰기

    요즘 한요섭교수님 오토메타듣는데 수업 재밌네요 :) 근데 막 오셨으니 학기 후반부에 소위 빡-_-세지 않을까 무서워하고 있습니다 헤헤[...]

  4. BlogIcon hyperdash 2009/09/17 17:07  댓글주소  수정/삭제  댓글쓰기

    그림으로 보니까 명쾌하구나... 예전에 글로 봤었을 때는 잘 이해가 안되었었는데

    걍 이해가 팍팍 되네~

이름 암호 홈페이지



웹 서핑 중에 우연히 일본의 Online Judge 를 찾았다.


http://rose.u-aizu.ac.jp/onlinejudge/  Aizu Online Judge

꽤 오래전부터 운영되던 것 같은데... 일본의 Online Judge 를 직접 눈으로 확인한 것은 처음이다.  아이즈 (會津) 대학에서 운영하는 것 같다. 아이즈 대학은 WF 에도 나간 바 있고 최근에 일본대회에서의 성적이 매우 좋다는 생각을 하고 있었는데 역시 그럴만한 이유가 있었군... 2009 년 일본 국내예선에서도 동경대에 이어 3 위를 차지한 바 있다.

Aizu Online Judge 는 일본 Online Judge 답게, 많은 문제들이 일본어로 작성되었다는 점이 특징이다.

중국을 봐도, PKU (Peking Univ. 북경대) TOJ (TainJian Univ. 천진대), ZOJ (Zeijiang Univ. 절강대) 등 직접 Online Judge 를 운영하는 대학들이 대개 ICPC 성적이 좋다. 역시 관심과 연습량은 성적에 비례하기 마련인것 같다.

한국에는 아직 대학 차원에서 대규모로 운영되는 online Judge 는 없고, Algospot.com 에서 운영중인 AOJ 가 한국어 위주로 운영되는 거의 유일한(개인이 운영하고 있거나 일부 정보경시 학원등에서 회원제로 운영하는 Online Judge 들을 논외로 한다면.) 개방된 Online Judge 가 아닐까 싶다. - 사실은 아직 문제갯수나 유저숫자면에서 외국 OJ 보다 뒤쳐진다. 
ICPC 에 관심이 많은 대학이라면 직접 Online Judge 시스템을 구축하고 운영해 본다면 간접적인 대학 홍보도 되고 학생들의 실력을 배양하는 좋은 인프라도 될 것 같은데... Problem Solving 수업이 있는 몇몇 학교들도 수업 과제등은 UVa 등의 외국 사이트에 의존하는 현실을 생각해 보면, Online Judge 의 필요성은 더욱 크게 느껴진다. 물론 대학생이상이라면 영문 사이트에서 그냥 연습해도 상관없겠지만 정올, KOI 를 준비하는 중고등학생 중 영어가 부담스러운 친구들은 아직도 PKU 나 UVA 를 번역한 사이트에 의존하는 경우가 많은 현실이다.

PS) Aizu Online Judge 의 상위권에도 보이는 이름 LayCurse... 이 인간 정체가 궁금하다...
최근 몇년 사이에 각종 Online Judge 의 상위권에 전부 자기 이름을 걸어 놓았던데... 최근 1-2년 사이에 2000 - 3000 문제는 푼 것 같다... ;;


크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/330 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon 그래요 2009/09/15 18:32  댓글주소  수정/삭제  댓글쓰기

    이 분의 블로그를 RSS리더기에 추가하고 읽지는 않습니다만(...일본어니까)

    정말 엄청나게 풀어대더군요 약 1주에 최소 10문제는 포스트 하는 듯 합니다.

  2. BlogIcon hyperdash 2009/09/17 17:10  댓글주소  수정/삭제  댓글쓰기

    이제 연습은 고만하고 엔지니어링을 해야지???

이름 암호 홈페이지




오늘 지메일을 열어보니 한여름이 절반이나 지났는데 감감 무소식이라 열리네 마네 한동안 소문이 무성하던 구글의 프로그래밍 경시대회, 구글 코드 잼(Google Code Jam) 2009 년 대회 개최 소식이 있었다.

8월 중순 경부터 시작되며, 퀄을 포함해서 총 네번의 온라인 예선를 거쳐 최종 25 명은 캘리포니아 구글 본사에서 11월에 결승전을 갖는 일정이다.

작년에는 지역 결선 출전이 500 명, 최종 결선 출전자가 100 명이었는데 올해는 지역 결선도 없는 듯 하고 최종 결선자 쿼터가 25 명으로 대폭 그 숫자가 줄었다. 구글도 요새 좀 어렵다는 이야기가 들리던데... 역시 규모가 축소된 코드 잼에서부터 그런 느낌을 받게 된다.



Code Jam is back!

We're excited to announce Google Code Jam 2009, this year's iteration of
Google's annual programming competition, which offers coders from around the
world an opportunity to solve complex algorithmic problems under time
pressure, using the programming languages and tools of their choice.
The contest will have a new format this year, starting with online rounds
and ending in a 25-person final in our Mountain View, California
headquarters. We're still choosing exact times for everything, but for
planning purposes we wanted to give you this tentative schedule. Please note
that the timing may change:

Early-Mid August: Registration will open.
+4 Weeks: Qualification round
+1 Week: Rounds 1A, 1B, 1C
+1 Week: Round 2
+1 Week: Round 3
November: World Finals in Mountain View

Online rounds begin soon, so start practicing!

The Google Code Jam Team
http://code.google.com/codejam

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/320 관련글 쓰기
댓글을 달아주세요!
이름 암호 홈페이지




미국발 금융위기로 시작된 경제 불황은 전 세계적으로 영향을 주고 있다.

내 주위 사람들과 주위 환경도 이래 저래 직,간접적으로 불황의 영향을 받고 있는데, 그 중 하나가 바로 TopCoder 이다. ( TopCoder 소개는 여기... )

여러가지로 드러나는 정황을 볼 때, 최근 수년간 급성장하던 TopCoder 역시 많이 어려운 시기를 맞고 있는 것으로 보인다.

우선, Member Referral Bonus 서비스가 TopCoder Studio 를 제외하고는 모두 종료되었다.

As of December 5, 2008, the referral program will award commission based on the winnings of new members of TopCoder Studio only. TopCoder will honor all commission payments due based on non-Studio referrals made before 12/5/08.

또한, 2009 년도 일정이 공개되었는데, SRM 은 기존의 1 주당 1회 열리던 것이 2 주당 1 회씩 열리게 되어있고,  TopCoder Business 의 핵심이라 할 수 있는  Design and Development 는 아예 일정도 나오지 않았다. 물론 계속 열리기야 하겠지만... 2009 년이 1 주일도 채 남지 않았는데 아직 일정조차 확정되지 않았다는 것이 충격이다.

여기에 대해서 여러가지로 많은 논란이 있는데...

SRM 에 참가하기 위해 참가비를 받자는 의견도 있고...

호스팅 비용에 보태기 위해 TopCoder 에 구글 애드센스를 달자는 좀 유치한 의견도 있었다.. -0-

개인적으로는 여러모로 많이 아쉽다. 원래 취지에 비추어 볼 때 SRM 에서 참가비를 받는 것은 옳지 않은듯 하고, 참가비를 받자는 것에 대해 여러 회원들의 반발도 만만치않다. SRM 을 자주 여는 것이 어느정도의 예산이 필요한지는 잘 모르겠지만... 다른 형태의 지출을 절감하더라도 SRM 을 비롯한 여러 이벤트들을 자주 여는 것이 좋지 않나 하는 생각도 든다.

사실 약간은 이해가 안가는 것이 아마 예산에서 가장 크게 차지하는 비용이 호스팅 비용일텐데... 서버는 항시 돌아가고 있을테니 호스팅 비용은 고정적일텐데 SRM 을 한 번 열때마다 어느정도의 추가 예산이 필요하길래 SRM 횟수까지 줄이는 건지 궁금하기도 하다.
 
어쨌든... 프로그래머들의 실력 향상과 커뮤니케이션에 지대한 공을 세우고 있는 사이트이니 만큼... 하루빨리 정상화 되기를 바랄 뿐이다. -0-;

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/282 관련글 쓰기
댓글을 달아주세요!
  1. 고글 2009/01/02 02:38  댓글주소  수정/삭제  댓글쓰기

    안 빠져먹고 2주에 한번하는거라도 참여를 해야되는데..;;; 올해 div1으로 같이 올라가용~ㅋ

    그리고 새해 복 많이 받으세요~ㅋㅋ
    5월에 교내대회 할때 뵈요...;;

이름 암호 홈페이지



잊어먹을 까봐 간략히 끄적여보는 뒷이야기들...

( 대회장에서 들은 이야기들이라 일부 오류가 있을 수 있음 )

이번 대회 가장 주목받은 팀은 대회 1 위팀인 서울대학교 HP^3 팀이었다.
2003 년 이후 5 년만에 등장한 서울대회 만점팀이었는데, 이 팀이 가장 마지막으로 푼 문제는 의외로 세번째로 많이 풀렸던 C 번이었다고 한다.
9 문제를 풀고, 가장 마지막으로 C 번을 서브밋 했을 때가 종료 20 분 전이었는데 대회 끝날때까지 판정이 나오지 않았다 한다. 그래서 기다리다 못해 clar 를 날렸더니 저지로 부터 온 대답이 걸작이었단다.
"Don't worry, be happy"

대회종료 30 분을 남기고 스코어보드는 업데이트가 되지 않지만 풍선은 계속 업데이트가 된다. 마지막까지 대회장 내에서는 누가 우승했는지 모르게 하려는 주최측의 배려(?) 가 느껴진다.

HP^3 팀은 많은 사람들이 대회전부터 우승후보로 꼽았다. 국내 예선 1위 팀이었고, 출전당시 기준으로 1 명의 탑코더 레드(domeng)와 2 명의 옐로우(ipkn, wookayin) 로 이루어진 팀이다. domeng 님은 국내 출전자들 중에서 TopCoder 랭킹이 가장 높으며, 금년 여름 IOI 조교로 이집트에 다녀오기도 했고, 올해 GCJ 에서 JongMan, ltdtl, yyoud88 과 함께 한국인 파이널리스트들 중 한명이다. 한마디로 요새 완전히 물이 오른 느낌?

또다른 우승후보 팀인 일본의 __________(andaasukoaazu)  ( 팀이름 한번 길다.. ) 동경대 팀에는
(iwi) 라는 TopCoder 레이팅 2400+ 의 무서운 고수가 있었는데... (일본 IOI 팀 조교출신이라 함) 황당하게도 정작 저 사람은 대회 내내 단 한 문제도 풀지 않았다 한다. -0-;; 또다른 팀원이 혼자서 8 문제를 다 풀었다고..;;  (뭥미... )
동경대 팀은 D 번에서 말린 것이 패인이었다 함.

넥슨 특별상과 NHN 특별상은 스폰서쉽이 걸린 문제, E 번과 H 번을 가장 빨리 푼 팀과 상위권 중 학교 2위팀에게 주어졌는데, NHN 특별상을 받은 연세대 Agari-Fighter 팀은 아예 초반부터 특별상을 노리고 A 번도 안보고 대회 시작하자마자 H 번부터 풀기 시작했다고. H 번이 가장 먼저 풀렸을 당시 시간은 대회 시작후 37 분, E 번이 가장 먼저 풀렸던 시간은 대회 시작후 40 분이었다.

연세대 MorningTree 팀은 바로 그 다음날 있는 대만대회에 참가하기 위해 시상식도 불참했다. 11월 7일 서울대회 출전 후 바로 비행기 타고 대만가서 대만대회 예비소집은 생략하고 바로 11월 8일 대만대회 참가라는 살인적 일정...

올해는 예년과 달리 대회 도중에 전체 참가팀의 submission 횟수와 어떤 문제를 풀었는지 여부를 상세히 볼 수 있는 full summary 가 제공되었는데, ( 단, 대회 참가자들은 철저하게 외부와 격리되어 오직 대회장 내에서 제공하는 standing 정보만 볼 수 있었다 ) 순전히 algospot 중계에 도움을 주기위한 배려였다고 한다. ^^; 

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/269 관련글 쓰기
댓글을 달아주세요!
이름 암호 홈페이지











2008 ACM-ICPC Asia Programming Contest - Seoul Site

2008/11/06 - 2008/11/07
Kimkoo Museum and Library
Hosted by KAIST


Final Standing

Rank School Team Solved Penalty
1 Seoul National University HP^3 10 1711
2 Seoul National University MP^3 9 1526
2 Zhongshan (Sun Yat-sen) University ZSU_Metatron 8 668
3 The University of Tokyo __________(andaasukoaazu) 8 835
4 Seoul National University NP^3 8 1007
4 Korea Advanced Institute of Science and Technology So Hot 8 1022
5 Pohang University of Science and Technology POSCAT 7 692
6 Information and Communications University Children's Playground 7 835
7 Tianjin University TJU_HanoiTower 7 841
8 Sogang University Coderani 6 638
9 Yonsei University MorningTree 6 864
10 Information and Communications University Hurry Up 5 507
10 Soongsil University BM@SCCC 5 622
11 Jilin University n2o 5 860
11 Yonsei University Agari-Fighter 5 890
12 Ajou University Wang Team 4 332
13 Korea Advanced Institute of Science and Technology PSKSA 4 333
13 Inha University SOD 4 503
14 Sejong University S.S.G 4 518
14 Soongsil University Ctrl+Z 4 520
15 Information and Communications University Jollypong 3 186
15 Pohang University of Science and Technology AdvancedPOSCAT 3 193
15 Korea Advanced Institute of Science and Technology Dal-inz 3 210
15 Soongsil University Algoleader 3 217
15 Kyung Hee University ZRALER 3 234
16 Kangwon National University A.I 3 267
17 Yonsei University ASCII 3 288
17 Kookmin University Heuristic 3 341
18 Soongsil University in.10.C.T. 3 379
18 Hansung University HANSUNG-U 3 429
19 Ajou University Why_So_Serious 3 449
19 Chung-Ang University ZeroPage 3 480


서울대학교의 Seoul Site 3 년 연속 우승으로 대회는 막을 내렸다.

한편, ACM-ICPC 와 함께 수상하는 제 8 회 전국 대학생 프로그래밍 경시대회 수상내역은 다음과 같다.

대상 : 행정안전부 장관상 / 상장 및 상금 300 만원 or 세계대회 참가경비 지원
서울대학교 HP^3

금상 : 행정안전부 장관상 / 상장 및 상금 100 만원
한국과학기술원 So Hot
포항공과대학교 POSCAT

은상 : 한국정보문화진흥원장상 / 상장 및 상금 70 만원
정보통신대학교 Children's Playground
서강대학교 Coderani
연세대학교 MorningTree

동상 : 한국정보문화진흥원장상 / 상장 및 상금 50 만원
숭실대학교 BM@SCCC
아주대학교 Wang Team
인하대학교 SOD
세종대학교 S.S.G

넥슨 대표이사상 / 상장 및 상금 50 만원
서울대학교 MP^3
한국과학기술원 PSKSA

NHN 대표이사상 / 상장 및 상금 50 만원
정보통신대학교 HurryUp
연세대학교 Agari-Fighter

특별상인 넥슨 대표이사상과 NHN 대표이사상은 수상팀 중에서 학교 2 위팀, 그리고 넥슨과 NHN 스폰서쉽이 걸린 E 번과 H 번을 가장 빨리 푼 팀에게 주어졌다.

그외에, 서울대학교 NP^3 팀은 전체 5등이란 성적임에도 학교 3 위 팀인 관계로 아무런 상을 받지 못하여, 대회감독관님이 별도로 봉투를... (금일봉?) 수여하는 훈훈한 장면도 있었다.


Comment.
서울대학교의 서울대회 3 년 연속 우승.
서울대는 올해도 여전히 막강한 전력을 과시하면서 다른 학교들과는 상당한 격차를 보였다. 서울대학교의 2등팀도 서울대회 우승을 할 수 있는 전력이었으니 말 다했지. 서울대학교 3 팀이 받은 풍선의 총 갯수는 27 이다. -0-  두터운 선수층에, 매년 새로운 괴물 신입생들이 유입되기 때문에 당분간 서울대의 독주는 계속될 전망이다.

올해도 역시 중국의 강력한 도전.
중국팀은 3 년 연속으로 서울대회 2 등이다. 초반에 ZhongShan 대학이 빠르게 8 문제까지 풀면서 상당히 오랫동안 1 위를 지키고 있어서 많은 대회 관계자들이 긴장했다고 한다. 최종적으로는 비록 2 위에 그쳤지만 ZhongShan 대학도 월드 파이널 출전은 확정적이다. ( 이 팀이 나갈지는 모르겠으나... )
한편, 개인적으로 우승후보로 꼽았던 동경대학교는 3 위에 그쳤다. 이 팀에 대해서는 대회후 재미있는 뒷이야기를 들었다. 여기에 대해서는 따로 포스팅~

월드파이널 티켓 예상.
예년과 같은 기준을 적용해 보자면, 작년의 경우 서울대회에 1.6 장의 월드 파이널 출전 쿼터가 주어져서, 실제로는 2.33 쿼터가 사용되면서 (국내팀 2.0 + 중국팀 0.33 ) 국내 팀 중에서는 1위인 서울대학교와 3위인 정보통신대학교가 월드 파이널에 나갈 수 있었다.
올해의 경우도 서울대회에 작년과 마찬가지로 1.6 쿼터가 할당된다면, 서울대 (1.0 쿼터) 중산대 (0.33 쿼터) 동경대 (0.33 쿼터) 까지로 쿼터 분배는 끝날 것 같다. 학교순위로 네번째인 한국과학기술원 (KAIST) 은 주최대학 와일드카드를 사용하거나 해외 대회에서 티켓을 따지 않는 한 월드파이널 출전이 어려울 전망이다.

참고로 작년도의 월드파이널 쿼터배분 기준을 설명하자면,
자국팀이 자국 대회에서 쿼터를 받는 경우 = 1.00 쿼터 사용
해외 대회에서 이미 쿼터를 확보한 자국팀이 자국대회에서 다시 쿼터를 받는 경우 = 0.66 쿼터 사용
자국대회에서 해외팀이 쿼터를 받는 경우 = 0.33 쿼터 사용
이렇게 된다.
결국, 중국 대회에 그렇게 많은 쿼터가 걸려 있음에도 상위권 중국팀들의 해외 원정이 활발한 이유는, 중국팀이 아시아 다른 지역 대회에서 상위권에 입상하여 월파 쿼터를 받게 되면 중국대회의 출전 쿼터가 늘어나는 효과가 있기 때문인 것이다.


금상 팀
매년 대회때마다 5 - 10 위권 성적을 거두던 포항공대는 올해는 최초로 금상을 받으면서 국내 ACM-ICPC Big 4 ( 월드 파이널에 나가본 국내 ICPC 성적 상위권 4 개 대학. 서울대, KAIST, 연세대, ICU ) 를 제외하고 금상을 받는 두번째 팀이 되었다. ( 첫번째 팀이 어디인지는 퀴즈...  )

은상 팀
은상팀들은 전력에 비해 예상외로 부진했다.
ICU 는 좋은 성적이 기대되었지만 은상에 그쳤다. 대회 당일 기준으로, 한국팀 출전선수들 중에 단 2 명의 TopCoder 레드가 있었는데 그중 한명은 우승팀에 있었고 나머지 한명은 Children's Playground 팀에 있었다.
예선 2 위였던 연세대학교 MorningTree 역시 본선에서는 9위에 그쳤다.
서강대학교는 작년에 이어 올해에도 은상을 받으며 2년 연속으로 은상 수상이다.  참고블로그 

동상 팀
숭실대학교는 올해 수상하면서 대학생 프로그래밍 경시대회 6 년 연속 수상에 성공했다.  (팀원 세명다 KOI 출신이라고... )
매해 해외대회 파견에 올해는 교내대회를 개최하며 ICPC 에 열정을 쏟은 아주대학교도 수상에 성공한다.




크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/273 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon wookayin 2008/11/20 20:25  댓글주소  수정/삭제  댓글쓰기

    티켓 룰은 어렵군요 @_@

    • BlogIcon soyoja 2008/11/26 15:34  댓글주소  수정/삭제

      처음에 이해하는데 한참 걸렸습니다...
      그런데 곰곰히 생각해보면 상당히 합리적입니다.
      아무래도 국내팀이 자국 대회에서 홈 어드벤티지가 있기 때문에 그런 부분을 적절히 고려한 쿼터 배분인 것 같습니다.

  2. 세종대 2008/11/21 13:04  댓글주소  수정/삭제  댓글쓰기

    약간 잘못된 정보가 있네요. 세종대 팀은 각자 놀다가 대회 당일 처음으로 호흡을 맞춰보았습니다. =_=;;

  3. 2008/11/25 11:38  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

이름 암호 홈페이지



풀수 있는 문제들은 최대한 풀어보자...

그런데... 다른 지역들은 대회 공식 홈페이지에 Judge Data 를 오픈한 곳들도 많은 반면...
ICPC 한국지역 대회의 기출문제들은 그런 면에서 좀 부족한듯...;;
유일하게 Judge Data 를 오픈했던 것이 2001 년...

출제되었던 문제의 테스트 데이터를 공개하지 않는 것은 혹시라도 있을 참가자들의 어필을 우려하기 때문이라고 밖에는 생각이 들지 않는데...;;; 쩝...


Taejon 2000 :


Taejon 2001 :
본선문제 PKU 1060 ~ 1092  or  ARC 2321 ~ 2328
http://acmicpc-live-archive.uva.es/nuevoportal/region.php?r=as4&year=2001
http://acm.pku.edu.cn/JudgeOnline/searchproblem?field=source&key=Taejon+2001


Taejon 2002 :
본선문제 PKU 1330 ~ 1337
http://acm.pku.edu.cn/JudgeOnline/searchproblem?field=source&key=Taejon+2002


Seoul 2003 :
본선문제 ZJU 2679 ~ 2687
2679 :
http://acm.zju.edu.cn/show_problem.php?pid=2679


Seoul 2004 :
예선문제 Hello-World 44
http://www.hello-world.co.kr/?q=node/110


Seoul 2005 :
예선문제 Hello-World 41 - 43
http://www.hello-world.co.kr/?q=node/104

본선문제 TJU 2501~2510
http://acm.tju.edu.cn/toj/search_process.php?s=Asia+-+Seoul+2005


Seoul 2006 :
예선문제 Hello-World 35 - 40
http://www.hello-world.co.kr/?q=node/98

본선문제 ZJU 3131 ~ 3140
http://acm.zju.edu.cn/onlinejudge/searchProblem.do?contestId=1&titlefrom=0&authorfrom=0&sourcefrom=0&query=Seoul%202006


Seoul 2007 :
본선문제 ARC 3900~3909
http://acmicpc-live-archive.uva.es/nuevoportal/region.php?r=as4&year=2007


Seoul 2008 :


원본 출처 : wookayin.com

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/265 관련글 쓰기
댓글을 달아주세요!
    • BlogIcon soyoja 2009/05/27 12:11  댓글주소  수정/삭제

      오호.. 감사합니다 ^^ (바로 링크 추가.. ㅋㅋ )

      혹시 올해 ACM-ICPC 도 출전하시나요?

      PS ) 늦었지만 해킹 세계대회 우승도 축하드려요~~

  1. song 2009/12/28 20:07  댓글주소  수정/삭제  댓글쓰기

    혹시.. 2000년도 문제중에서 problem C번 문제 Moving pegs 푸신분 계신가요??;;
    그 문제 잡고 몇시간째 헤메고 있는데.. 싸이트를 뒤져봐도 관련된 소스코드는 구하기가 힘들군요..ㅠ.ㅜ;
    혹시 도움주실수 있는 분.. 네이트온이나 다른 메신져 아이디 남겨주시면 친구추가 하겠습니다..(__)

이름 암호 홈페이지



Problem Solving 의 정수론 분야 중 두 수의 최대공약수최소공배수를 이용한 문제들은 매우 자주 등장하는 편이다.
구하는 방법은 여러가지가 있는데...


방법 1) 소인수 분해 (Prime Factorization)
중학교 때 배우게 되는 소인수 분해를 이용한다
어떤 수의 모든 소인수를 구하는 방법은 소수구하기 알고리즘을 이용한다.

소인수분해는, a 와 b 를 소수로 나눌 수 있는 만큼 인수분해하여, 최대공약수는 두 수의 공통된 소인수들 중에서 차수가 최소인 값들의 곱이 되며, 최소공배수는 두 수의 모든 소인수들 중에서 차수가 최대인 값들의 곱이 된다.


이 방법은 수학시간에 배운 직관적인 방법이고, 많은 이들에게 익숙하지만 위에서 보듯이 코딩으로 옮기기에는 꽤나 귀찮다는 단점이 있다. 또한 두 수 a, b 의 모든 소인수를 구해서 저장해 놓아야 하므로 별도의 메모리를 필요로 한다. ( 위의 코드는 10000 까지의 소인수에 대해서 구현한 코드 )


방법 2) Brute force
최대공약수의 정의를 이용하여, brute force 방법으로 직접 구한다.
즉, 두 수 a, b 를 나누어서 나머지가 0 이 되는 수들 중에서 가장 큰 숫자를 구하면 이 숫자가 최대공약수가 되며, 두 수 a, b 의 배수를 구하여 공통된 배수 중 가장 작은 숫자를 구하면 이 숫자가 최소공배수가 된다.

위의 코드에서 만약 a, b 간의 공약수가 존재하지 않는 경우는 두 수의 최대공약수는 자연스럽게 1이 되며, a, b 간의 최소공배수 중 가장 클 가능성이 있는 수는 a*b 가 되므로 a*b 까지만 검사를 하면 된다.

이 방법은 최대 a*b 번의 연산을 해야 하므로,  a 와 b 가 커질수록 수행시간이 급격히 늘어난다.


방법 3)
Euclid's algorithm - Using Recursion
사실 최대공약수와 최소공배수를 구하는 것은 고대 그리스의 수학자, 유클리드가 고안한 "유클리드 알고리즘"(Euclid's algorithm) 을 쓰면 간결하게 해결할 수 있다. 이 방법은 The Art Of Computer Programming 의 제 1장에도 소개된 바 있다.
a, b 중 큰 수를 a, 작은 수를 b 라 하자. 이 두 수의 최대공약수를 구하려면 a 를 b 로 나눈다. 이 연산을 한 후에 b 와 a%b 를 갖고 어느 한쪽이 0 이 될때까지 이 과정을 계속 반복한다. a%b 가 0 이 될 때의 b 가 바로 최대공약수가 된다. 이를 코드로 옮기면 다음과 같다.


최대공약수와 최소공배수의 성질을 이용하면 아래와 같이
최소공배수 = (a*b) / 최대공약수
최대공약수 = (a*b) / 최소공배수
가 되므로, 최대공약수나 최소공배수 둘 중 하나만 구하면 나머지 하나는 쉽게 구할 수 있다.


방법 4) Euclid's algorithm - Using Iteration
방법 3 은 매우 간결한 코딩이 가능하지만, 재귀호출을 이용한다는 단점이 있다. 재귀호출은 상당히 비싼 작업이므로 이를 좀더 효율적인 iteration 버전으로 바꿀 수 있다. 실제로 방법 3은 a, b 가 매우 큰 서로소일 경우 답을 얻는데 꽤 오랜 시간이 걸리게 된다.



방법 5) Euclid's algorithm - Using Iteration, Original Version
유클리드가 처음 이 알고리즘을 제안했을때 사실은 modular 연산을 사용하지 않고, 아래와 같이 뺄셈 연산을 이용했다 한다.
 
방법5 는 방법 4와 비교하여, tmp 변수를 사용하지 않아도 되므로 메모리를 약간 절약한다는 장점이 잇다 ^^

유클리드 알고리즘의 증명 = 자세한 설명은 생략한다 Wikipedia 참고
유클리드 알고리즘의 시간복잡도 = O(n^2), n = length of integer bits, 그 이유는 n-bit 숫자 나눗셈 연산의 시간복잡도가 O(n(m+1)) 이기 때문이다 ( m 은 몫의 길이 )

3개 이상의 수에 대해 최소공배수와 최대공약수를 구할 때는, 두 수의 최소공배수와 최대공약수를 구한 후, 이 수와 나머지 수들에 대해 최소공배수와 최대공약수를 구하면 된다.

유클리드 알고리즘을 처음 보았을 때 무릎을 쳤던 기억이 난다. 그래서 최대공약수와 최소공배수에 대해서 글을 반드시 함 써보려 했는데... 위키피디아에 유클리드 알고리즘이 깔끔하고 멋지게 정리가 되어 있었다 ㅋ

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/261 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon 김경태 2008/10/19 00:04  댓글주소  수정/삭제  댓글쓰기

    오 알고리즘 정리 해놓으시는 카테고리도 있네요. 가져가도 될까요? 후배들 교육용으로? 발행 안하고 내부 문서로만 쓸 예정입니다.

  2. BlogIcon hyperdash 2008/10/21 01:19  댓글주소  수정/삭제  댓글쓰기

    출처 안밝히고 막 써도 되는 자료지? ㅋㅋㅋ

  3. mosaick 2009/08/11 16:55  댓글주소  수정/삭제  댓글쓰기

    지나가다 하나 추가하면 좋을 것 같아서, ^^a


    방법5 는 방법 4와 비교하여, tmp 변수를 사용하지 않아도 되므로 메모리를 약간 절약한다는 장점이 잇다 ^^
    => 방법4는 modular연산을 통해 방법5에 비해서 순회횟수를 줄인다.

  4. BlogIcon 연꿈 2009/11/20 16:30  댓글주소  수정/삭제  댓글쓰기

    와 정말 잘 정리해놓으셨네요
    출처밝히고 참고해도 괜찮을까요

  5. vv 2011/12/20 20:31  댓글주소  수정/삭제  댓글쓰기

    별5개 중에 5개 드려도 되나요?

이름 암호 홈페이지



ACM-ICPC 국내예선 대회를 일주일 앞둔 지난 9월 20일,
모교에서는 교내 프로그래밍 경시대회가 열렸다.

작년도 교내 프로그래밍 경시대회 포스팅

금년도 교내대회 출전팀 숫자는 총 67 팀 ( 참가자 숫자 3*67 = 201 명 ). 작년보다는 약간 줄기는 했지만 여전히 국내 최대 규모로 치루어졌다. 작년에는 교내대회 상위 2팀 + 국내예선 상위 2 팀을 해외대회에 파견하였는데, 그렇게 하다보니 서울대회는 참가하지 않는 팀이 ( 물론 대학원 면접, 회사 면접 등이 겹치는 어쩔수 없는 사정들이 있었다고는 하나... ) 해외대회만 출전하는 상황이 생기면서 문제가 되었던 것 같다.

실제로, 이런 이유로 서울대회에서도 올해는 "참가확인" 을 받으면서 대회불참팀이 생기지 않도록 규정을 새로 만든 모양이다.

관련글 보러가기

그래서 올해의 교내대회는, 국내예선에 출전하는 상위 30 개팀을 선발하는 목적으로 치뤄지며 ( 물론 교내대회 성적에 따른 상금 시상은 있다 ), 해외대회 파견팀은 국내예선 상위 4 개팀만을 파견하기로 결정되었다.

나는 작년에 이어 올해도 교내대회 문제출제자 겸 심사위원으로 참관했다. 아주 재미있는 경험이었다. ^^

이곳이 바로 Judge Room 이다. 교수님 외에 6 명이 Judge 로 수고했다.

대회 오리엔테이션. 올해는 학장님도 오시고 해서 작년보다 좀 더 격식을 갖췄다고 할까.

Judge 룸 상황. 실제 대회가 시작되면 Judge 들도 대회 치루는 것 처럼 정신이 없다. Judge 들은 각자 자신들이 출제한 문제에 대해 judge 를 맡게 되는데, A, B 번을 맡은 사람들은 대회 시작부터 끝까지 아주 죽어난다. -0- 반면 G, H 를 맡은 사람들은 할일이 없어서 심심하게 보내게 된다. ㅋㅋ 나는 적당히 바쁜 D 번 문제에 대한 출제 및 심사를 맡았다.

올해는 ACM-ICPC 서울대회와 비슷하게 격식을 갖춰, 티셔츠 까지 제작해서 나눠줬다. 그 외에 대회시간 내내 간단한 다과가 제공...
사실 참가자와 스탭들이 티셔츠를 입으니 여러가지로 대회 운영상 편리한 점이 많았다. 대회 참가자와 스탭을 쉽게 구분할 수 있고, 대회 운영 중 통제도 더 쉬워진다. 앞으로는 매년 이렇게 티셔츠 제작도 하게 될 것 같다.

실제 대회 시간 중...

대회 종료 후, 시상식 장면.
이 팀이 1위 팀인데, 문제해결 수업 때 매우 두각을 나타냈던 친구들이라 한다.

그런데 아쉬운 것은, 정작 국내예선에서는 이 교내대회 1 위팀이 2 문제에 그치면서 서울대회 출전이 좌절 된 것 -0-;

개인적으로도 매우 재미있는 시간이었다.


교내대회 출제문제

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/257 관련글 쓰기
댓글을 달아주세요!
  1. BlogIcon 도맹 2008/10/13 19:29  댓글주소  수정/삭제  댓글쓰기

    안녕하세요~ 굉장히 교내대회가 후덜덜덜 하네요 ㅠㅠ 학장님도 오시고;;

    • BlogIcon soyoja 2008/10/14 00:04  댓글주소  수정/삭제

      안녕하세요!
      정작 제가 졸업하고 나니까 대회를 팍팍 밀어주는 혜택이 많아졌다는... -0-;;

  2. BlogIcon Radient 2008/10/23 03:04  댓글주소  수정/삭제  댓글쓰기

    이제야 후기 봤습니다!

    형도 참 수고 많으셨어요! 올해 교내대회 성적이 안좋아서 좀 우울한데, 서울대회때는 다시 학교 1등 노릴기세로 할껍니다! ㅋㅋ

    • BlogIcon soyoja 2008/10/24 10:11  댓글주소  수정/삭제

      올해도 해외대회 나가고.. 잘한거지 뭘...
      나도 서울 대회에 가니까.. 서울대회때 보자궁.. ;)

이름 암호 홈페이지



2001 년부터 ACM-ICPC(세계 대학생 프로그래밍 경시대회) 아시아지역 대회와 겸해서 치뤄지는 전국 대학생 프로그래밍 경시대회, 올해도 어김없이 개최된다.

2008 년 11월 6일 - 11월 7일, 백범 김구 기념관.

새정부 들어 정보통신부가 없어져서, 그 전까지 본 대회를 주관하던 정부 주무부서가 정보통신부에서 행정안전부로 바뀌었다. ( 개인적으로는 교육과학기술부가 담당하는 것이 맞지 않나 싶었지만... 알아보니 정부부처가 통폐합되면서 기존에 정보통신부에서 맡아오던 IT 관련 업무가 행정안전부로 이관되었다고. )

주최는 행정안전부, 대회 메인 스폰서는 IBM. ( IBM 은 Regional Contest 에서는 별 존재감이 없긴 하지만... )

Secondary 스폰서는 예년과 마찬가지로 NHN 이 맡고 금년들어 Nexon 이 새로 스폰싱을 한다.
이런면을 보면 알고리즘 문제풀이 경시대회의 가치에 대해서 IT 기업체들도 그 중요성을 공감하는 분위기가 확산되는 듯 하여 흐믓하다.

 
사용자 삽입 이미지

올해의 경우 대회 포스터가 꽤나 맘에 들게 나왔다. 
C / C++ / Java 라는 대회 사용언어와 "Think / Create / Solve" 라는 대회의 슬로건을 잘 형상화 한 듯.

한편, 본 대회와 관련해서는 2 가지 article 에 대해서 써야 하는데...

2008 년 IT 대학생 프로그래밍 경시대회 ( 교내대회 )  2008/09/20

전국대학생 프로그래밍 경시대회 및 ACM-ICPC Asia Regional Contest 의 국내 예선,
ICPC Korea National Programming Contest, 2008/09/27

포스팅 거리가 자꾸 밀리는 군.. -0-

크리에이티브 커먼즈 라이선스
Creative Commons License
http://soyoja.com/trackback/255 관련글 쓰기
댓글을 달아주세요!
이름 암호 홈페이지