가짜개발자(Toy Programmer)팀은 회사에서 알고리즘 공부를 같이 하던 동기 4명이서 출전한 팀이다.

첫 출전 치곤 나쁘지 않은 성적이라 생각한다.

Google Hashcode란

오랜만에 포스팅을 올린다.

 

Google에는 3가지 종류의 Coding Competition이 있는데, Codejam, Kickstart, Hashcode이다.

 

Codejam과 Kickstart은 여러 번 참여해본 경험이 있는데 hashcode의 경우 팀전이기도 하고, 뭐 어떤 문제를 푸는지 그런 정보도 모르고 대회 시간이 새벽이기도 해서 별 생각 없었다가, 회사 동기형의 추천으로 어째저째 회사 동기들 4명으로 팀을 꾸리게 되었다.

 

같이 알고리즘 공부를 하던 친구들이라 딱히 크게 준비는 안해도 어느정도는 풀지 않을까 싶었다. 그리고 동기형네 파트 사람이 추천해줘서 어느정도 정보도 있었고, 같이 시험을 볼 장소 등도 제공이 되었다.

 

시험 방식

hashcode는 kickstart, codejam과는 조금 비슷하면서 다른 coding competition이다.

일단 2~4인의 팀을 꾸려야 하며, 혼자서는 참여할 수 없다. 만약 같이 참여할 사람이 없다면 hub나 facebook 커뮤니티 등에서 팀원을 찾아서 같이 참여할 수 있다.

Hub는 hashcode 사이트에서 제공하는 커뮤니티로, 학교나 회사 등의 물리적 지역의 거점으로 팀원을 찾을 수 있는 커뮤니티 같은 것이다. 예전에는 물리적인 hub로 장소가 정해져있던것으로 보이는데, 2021년 올해에는 코로나 때문에 Virtual Hub라고 해서 온라인으로 된 hub를 제공하는 것 같다.

 

문제 형식

일반적인 Algorithm Problem Solving 대회에서 출제하는, 결정적 알고리즘으로 Correctness, Performance(Time/Memory)를 측정하여 Pass/Fail을 체크하는 것이 아니라, NP 문제와 같은 문제를 근사해를 통해 구해서 최대한 높은 점수를 내는 방식이다. Topcoder의 Marathon Match와 비슷한 유형의 문제이다.

다만 탑코더 마라톤 매치는 1~2주 씩 진행하는 것에 비해, 이 해시코드는 3시간 30분 내에 4명의 팀에서 하나의 문제를 푼다는 점이 다르다.

그리고 대략 5~6개 정도의 Test Case Input을 모두 제공하며, 이 데이터 셋의 특성에 따라 각각 다른 방식으로 Output을 만들어내어 제출해도 관계없다. 그리고 Output 파일을 만들기 위한 소스코드도 제출하긴 하는데, 치팅 등을 확인하기 위한 용도로만 보이고, 크게 중요해 보이진 않았다. zip파일로 소스코드를 제출할 수 있게 되어있는 것으로 보아서, test case별로 다른 소스코드를 작성한 경우 압축해서 업로드 하면 되는 것으로 보인다.

 

그리고 여러번 제출하면, 각각 test case중에서 가장 높은 점수를 기준으로 반영이 된다.

후기

사실 나는 학부시절 ICPC도 출전해보지 못해서, 팀 단위의 Coding Competition은 출전해본 적이 없다.(해커톤은 있긴 하구나) 따라서 첫 팀전 코딩대회로서의 의미가 있었다고 생각한다.

제작년 다른 팀 후기들을 보면, Test Case별로 각자 하나씩 잡아서 코딩을 했다고 하는데, 이번 문제의 경우는 하나의 Source Code로 모든 input test case를 죄다 돌린 뒤 제출을 계속하는 방식으로 진행했었다.

 

개개인이 코딩에 집중하였을때 서로 말 걸면 반응하기 쉽지 않았던 점을 다음해 대회 진행때 참고해야 할 것 같다.

 

오랜만에 회사생활의 반복됨에서 빠져나와 살아있음을 느끼게 해 준 대회였다.

 

제출했던 코드들 등은 팀원 중 한명인 happy hacker가 업로드한 아래 깃허브에서 확인해볼 수 있다.

github.com/hhkers/hashcode-2021

 

hhkers/hashcode-2021

Contribute to hhkers/hashcode-2021 development by creating an account on GitHub.

github.com

 

그리고 다른 데이터셋으로 kaggle에서 문제를 풀어볼 수 있다고 하니, 관심있으면 kaggle에 참여해보자.

www.kaggle.com/c/hashcode-2021-oqr-extension

 

Hash Code 2021 - Traffic Signaling

Optimize city traffic in this extension of the 2021 Hash Code qualifier

www.kaggle.com

 

+ Recent posts