티스토리 뷰


 2018년 10월 13일 과학기술정보통신부가 주최하고 한국과학창의재단과 코다임(codigm)에서 주관하는 SW중심사회의 교육행사로 개최된 디지털 과거 Code+ 프로그래밍 대회 오프라인 본선에 참가했다. 


 온라인 예선에서는 코다임에서 서비스하는 GoormTEST 플랫폼을 사용하여 진행되었는데, 오프라인 본선도 마찬가지였다. 대회에서 제공하는 노트북만 사용할 수 있고, IDE는 사용할 수 없어서 GoormTEST 플랫폼 위에서 코딩을 해야만 했다. 온라인 예선때 처음 사용해봤었는데, 꽤 좋은 플랫폼이여서 걱정하진 않았지만, 대회에서 제공하는 노트북은 익숙한 키보드가 아니여서 매우 불편했다. 하지만 노트북은 새 노트북인 것 같았고, 대회 환경은 크게 나쁘지만은 않았다.


 오프라인 본선은 부산 벡스코에서 진행됐다. 대회는 12시부터 참가자 등록을 했고, 1시부터 4시까지 총 3시간 동안 5문제가 출제되었다. 본선은 예선에서 상위 50명을 뽑았는데, 부산이 꽤 먼 거리인데도 생각보다 많은 사람들이 참가했던 것 같다. 아마도 1등이 100만원, 2등이 50만원, 3등이 30만원, 그리고 7명까지 15만원의 상금이 걸려있어서 먼 거리에도 불구하고 많이 참여한게 아닌가 싶다. 그 중에서 이미 알고리즘 문제풀이로 매우 유명한 분들도 많이 있었다.





 대회 문제는 후원기업인 NHN엔터테인먼트, 우아한형제들, 스마일게이트, 쿠팡의 각 기업에서 채용을 위해 보는 실제 코딩테스트 문제들이다. 코딩테스트를 위한 문제들이다 보니, 특정한 알고리즘이나, 특별한 아이디어로 최적화하는 문제보다는, 단순 구현하는 문제들이 주로 출제되었다. 그런데 문제의 내용이 다소 모호한 점도 있었고, 입력과 출력이 이상한 문제들도 있었다.


 관계자로부터 본선 문제에 대한 내용은 되도록이면 공개하지 말라는 부탁이 있어서 자세한 문제풀이는 할 수 없지만, 간단하게 문제의 구성은 다음과 같았다.


  1. 두 점의 거리를 구할 수 있는가?
  2. 주어진 조건에 대해 케이스를 잘 분류할 수 있는가?
  3. 복잡한 조건의 정렬을 할 수 있는가?
  4. 문자열 처리를 할 수 있는가?
  5. Dynamic Programming을 알고 있는가?

 1번부터 4번까지는 예선에서의 난이도와 크게 다르지 않았다. 예선을 통과한 참가자들이라면 충분히 어려움 없이 풀 수 있었던 문제들이였다. 하지만 문제에서 제한이 제대로 명시되어 있지 않아서 대회 초반에는 질문이 좀 많았던 것 같다.


 5번 문제는 다른 문제에 비해 질문이 매우 많았던 문제였다. 다른 문제와 마찬가지로 문제의 제한도 몇차례 계속 수정되었고, 문제에서 요구하는 바를 제대로 설명하지 못했던 것 같다. 그리고 무엇보다 중요한건 수정된 제한으로는 다항시간 안에는 풀기 힘들어보였다는 것이다. 내용을 잘 읽어봤는데 아무래도 Bin Packing Problem을 아는지 물어보는 문제였다. Bin Packing Problem은 NP-Hard 문제로 잘 알려져 있는데, 대회 문제로 다항시간에 풀 수 없는 문제를 냈을리는 없다고 개인적으로 생각한다. 아마도 출제진의 오류가 아닌가 싶고, 문제의 원래 의도는 0-1 Knapsack Problem이나, 제한을 매우 작게 주어 완전탐색을 의도한게 아닌가 싶다.


 대회 치고는 문제부분은 너무 아쉬웠다. 물론 코딩테스트를 위한 문제다보니 어느정도 이해할 수 있지만, 문제에서 제한은 꼭 명시 해주었으면 좋겠다. 이 부분 빼고는 전체적으로 대회 준비와 환경은 괜찮았다. 무엇보다 이런 대회를 열어준 것에 감사하고, 나 같은 초보자들도 쉽게 도전해볼만한 대회였기에, 많은 기업들이 후원하면 더욱 알고리즘 문제 풀이에 대해 사람들의 관심이 높아지지 않을까 생각한다.



댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday