들어가면서
우연한 기회에 2023 Woori 코딩페스티벌에 참여하게 되었다. 알고리즘 공부를 시작한 지도 어느덧 반 년 이상이 지났지만, 기업 코딩테스트가 아닌 대회에 참여한 것은 처음이었다. 참여비도 없고 떨어진다고 해서 불이익이 있는 것도 아니라서 가벼운 마음으로 참여했다. 이번 경험을 통해 느낀 점을 간단하게 기록하고자 한다.
예선전 후기
예선과 본선 모두 전국에 있는 YBM IT 센터에서 실시했다. 예선 당시 개인적으로 바쁜 시기여서 빠르게 시험을 치고 조기 퇴실을 하려고 했는데 시험이 종료될 때까지 퇴실이 안 돼서 당황했다. 난이도는 어렵지 않은 편으로 시험은 COS Pro 1급과 같은 형식인 듯했다. 홈페이지의 예시 문제와 블로그 후기 등을 통해 크게 어렵지 않을 것이라 예상하고 특별한 준비는 하지 않았다. 만약 입상까지 생각하고 있는 참가자라면, 본선과 형식이 다르다고 해서 예선을 위해서 따로 시간을 투자할 필요는 없어 보인다.
본선 후기
본선도 같은 장소에서 치루었다. 예선은 빈칸 채우기 등 COS 문제 형식을 따랐지만, 본선은 지문이 주어지고 해당 문제를 해결하는 솔루션 코드를 짜는 일반적인 코딩 테스트 문제가 출제되었다. 특별한 알고리즘을 사용하지 않고 단순히 구현하면 되는 느낌이 문제였다. 그렇다고 무지막지만 구현이 아니라 정렬이나 간단한 아이디어를 가미한 후 나머지는 구현에 맡기는 느낌이다. 최종 코드의 길이도 그렇게 길지 않았다.
지금 생각하면 입상을 목표로 조금 더 전략적으로 접근했으면 어땠을까하는 생각이 든다. 문제의 제약조건과 알고리즘의 시간 복잡도를 분석해서 단순 구현 시 10초 이상의 시간이 걸릴 것으로 판단했는데, 효율적인 해법을 찾느라 고민하는 데 시간을 많이 썼다. 당시에는 10초가 넘어가면 애초에 통과가 안 될 것이라 생각하고 끝까지 고민하고 나오고자 했는데 돌아보니 좋은 전략은 아니었던 것 같다.
처음 문제를 다 풀었을 때 1시간이 조금 안 남았는데 최종적으로 제출은 20분 정도를 남겨두고 했다. 40분동안 큰 효율성 개선은 없었다.
수상
2023 6월 9일 우리FIS 본사 시상식에 참여했다.
결과적으로 수상을 하기는 했다. 입상하신 분들의 제출 코드나 시간을 알 수 없기 때문에 왜 내가 수상했는 지는 알 수 없다. 예측하기로는 두 가지 중 하나의 경우인 것 같다.
1.
평가 기준에 효율성이 없다. (비효율적인 내 코드로도 테스트 케이스들을 통과했다.)
2.
애초에 문제를 효율적으로 푼 사람이 몇 없다.
최근에 알고리즘에 소홀하여 감이 많이 떨어진 것 같은 기분이 들었는데 이번 기회에 다시 꾸준히 공부해야겠다는 생각이 든다. 운이 아닌 실력에 의존할 수 있게 끔 더욱 노력해야겠다.