본문 바로가기

대회

Reply Coding Challenge(Teen Edition) 후기

학교 친구들 4명이서 나갔다.

열심히 캐리당해서 기분이 좋았다. 대충 타임라인대로 정리해보자면..

대회 전

대회에 대한 이야기가 나와서, 작년에 함께 했던 @pentagon03과 학교 친구들 2명과 함께 팀을 짰다. 작년에는 학교에서 우리밖에 안 나왔는데, 이번에는 학교 쪽에서 공지를 해주신 덕분에 5팀이나 출전하였다. (대충 5기 2팀, 6기 2팀, 7기 1팀이라는 듯)

 

대회 4시간 전쯤에 연습을 한 번 돌렸는데, 학교 행사가 있어서 두명이 그냥 안 왔다.

그래서 아무 생각 없이 풀기 시작했는데, 거의 할 수 있는 최악의 연습이었다.

그냥 심심하면 어디 가고.. 뇌절하고.. 실제 대회에서 이러지만 않으면 될 거 같다는 생각이 들었다.

 

그래도 유의미한 성과도 있었는데, 문제를 하나씩 맡으면 그냥 각개격파당한다는 걸 깨달았다. (물론 pentagon은 그냥 해도 되더라)일단은 둘, 둘로 나눠서 A번과 B번을 잡기로 했다.

 

대회 30분 전에는 대회 장소를 정해야 했는데, 원래 점찍어뒀던 곳이 의외로 사람들로 차버려서 당황했다. 여러 군데를 돌아다녔지만 갈 수 있는 곳이 없어서 결국 회귀했다. 무려 12명이 같은 곳에서 대회를 치르게 되었다.

 

이 시점에서 아주 큰 불길함을 느꼈다.

대회 시작 + B (0 min~36 min)

시작하자마자 B부터 열었다. 간단한 sparse table 연습문제라는 걸 깨닫고 대략 5분만에 코딩했는데, 계속 WA가 떴다.

20분간 뇌절치고 있다가 pentagon이 내 코드를 받아서 뚝딱뚝딱 하더니 맞췄다.

 

문제를 잘못 읽었더라..

뇌절기 (36 min~2h 20min)

이 시점에서 남은 문제가 C, D, E였는데, C는 말도 안되는 Case Work 그리디였고, E는 절대 못 풀것 같아서 D를 잡았다.

 

그런데, 여기서 나의 어줍잖은 지식이 화를 불렀다. 반평면 교집합 알고리즘에 대해 잘 알지도 못하면서 관련 코드를 긁어와서 작동시키는 데에 한참을 소모했다. 이 문제를 풀기 위해 단순히 반평면 교집합 알고리즘을 복붙하면 되는 게 아니라, 어떤 응용을 해야만 한다는 것을 깨달은 게 대략 2시간 시점이었다. 그 사이에 C는 풀려 있었고 친구들은 모두 E를 고민하고 있었다.

 

모든 욕심을 버리고 $O(N^3)$ 알고리즘을 고민하기 시작했다. 정말 딱 15분만에 알고리즘의 윤곽이 잡혔고 팀원들에게 컨펌받았다. 난 진짜 내가 1시간 40분 안에는 짜서 맞출 수 있을 줄 알았다.

D 도전 (2h 20min~)

구현을 어떻게 할지를 대략적으로 정리한 다음에 바로 들어갔다. 정말 많은 실수를 했는데..

 

1. 실수 오차 관리 안함 (eps)

2. 중간 점검 안하고 한번에 짬

3. 친구들이랑 중간중간에 얘기 안해서 아무도 코드 못 봐줌

4. 구현체들을 진짜 머리 비우고 갖다 박음

....

 

왜 그랬는지는 잘 모르겠다. 솔직히 기존에 알던 지식에서 크게 벗어나던 것도 아니어서, 기본기만 충실했으면 1시간 내에 코딩했어야 하는 문제였다고 생각한다. 결국은 20분 남기고 코딩을 끝냈는데, 진짜 살면서 듣도 보도 못한 런타임 에러가 나서 제출도 못해보고 끝났다. pointer range transposed 오류가 대체 뭔지에 대해서 아시는 분들은 댓글 부탁드려요.

 

결론

53등 했다. pentagon이 없었다면 앞에 1이 더 붙었을 것이다.

 

기본기에 대해서 많은 고민을 하게 해 준 콘테스트인 것 같다. 어줍잖게 특정 알고리즘을 시도하다가 깨지기도 하고, 기본적인 기하 구현들을 거의 실패했다. 그런 부분들은 정말 연습이 필요하다. 티어만 신경쓰기보다는 기본기를 늘리기 위한 연습을 해야 할 것 같다.

'대회' 카테고리의 다른 글

Codeforces Round #738 후기  (0) 2021.08.16
Codeforces Round #735 후기  (1) 2021.08.01