본문 바로가기

회고록

[24/07/13] 2024 UCPC 예선을 치루며

728x90

결론만 이야기하자면 내가 너무 똥을 쌌다.

우리 팀은 총 6솔을 했고, 나는 A번을 최대한 빠르게 풀고 다른 사람들이 푸는 것을 지켜보다가 다른 팀의 솔브가 나오면 그 문제를 잡는 역할을 했다.

A번은 만족할 만큼 최대한 빠르게 풀었다.

그 뒤로 모든 문제를 가볍게 쓱 훑고 K번을 봤다.

K번에서 대부분의 케이스들이 어떻게 구성될 지는 생각까지 했으나, 인접 노드가 홀수 개인 노드가 없는 경우, 즉, 예외 처리의 경우가 생각이 잘 안나서 다른 문제로 바로 런쳤다.

이후 잘은 생각이 안나는데, 스코어보드를 보고 H번을 잡았던 것 같다.

예제 입출력을 슥 그려보고, 음, 오른쪽 최대 + D + 오른쪽 최대 + 왼쪽 최대 + D + 왼쪽 최대면 스무스하게 답이 나오는 군! 이라고 착각하고 그대로 제출했다가 1틀.

맨붕에 빠진 나는 어디서 틀린지 마음을 가다듬고 동현님(다른 팀원 분)이 풀고 있는 G번을 조금 도와주고 ("기본적으로 원기둥이 4조각으로 정육면체를 나눈다고 생각하고, 그건 원래 조각 수보다 적을 텐데, 인접한 애들끼리 붙어있는 모양마다 갯수를 다르게 해서 다시 더해주면 전체 개수가 나오지 않을까?" 라고 아이디어를 던져줬다. 동현님은 조각을 4개가 아니라 8조각으로 나눠서 풀었고 BFS로 연결 조각의 개수를 세어서 풀었다.) H번을 도와달라고했다.

동현님이 슥 보더니 H번의 반례를 던져주었고, 케이스 워크가 꽤 많은 문제라는 것을 깨달은 나는 큰 충격에 빠졌다.

이후 스코어보드를 보고 J번을 잡았다.

J번이 개많이 풀려있길래, 쉬운 알고리즘인가보다... 생각했고, BFS로 나이브하게 짜도 돌아가는 문제인가? 싶어서 BFS로 짜서 바로 제출했다.

물론 관찰 하나를 해서, T의 개수가 짝수 개인 경우에만 BFS를 돌리도록 했다.

당연히 시간초과로 틀렸습니다를 받았다.

더군다나 T의 개수가 짝수개임에도 불구하고 불가능한 반례를 찾아버려서 더 맨붕에 빠졌다.

첫번째 멘붕은 이렇게 애드혹적인 문제인데 많은 사람들이 풀었다는 것이고, 두번째는 그러면 나는 어떻게 이 문제를 접근해야하지?에 대한 압박감이었다.

재현님이 E번을 4틀한 끝에 맞으셨기 때문에, 나는 내가 맡은 한 문제를 풀어야 했었다.

동현님이 이 날 컨디션이 굉장히 좋으셔서 혼자서 3솔을 하셨다. G번을 해결하신 동현님은, 내가 건드려서 각각 1틀씩 적립했던 H번이랑 J번을 둘다 해결하셨다.

UCPC예선 보는 3시간 동안 화장실도 마렵고 배도 살살 아파서 컨디션도 최악이었다.

동현님이 컨디션이 좋은 날이었지만 많은 부담을 안겨드린 것 같아서 미안하다. 재현님도 무난하게 기복 없이 2솔 하셨는데, 나만 A번만 풀어서 기여도가 없었던 것 같아서 많이 미안하다.

한가지 아쉬운 점은 C번도 풀 수 있었고, K번도 풀 수 있었는데, C번은 재현님이, K번은 내가 잡다가 둘 다 구현 시간이 다 되서 종료했다는 점이다. 난 K번의 풀이까지 알게되었고 구현만 하면 되는 상황이었는데 그 부분이 너무 아쉬웠다. (C번도 마찬가지)

내가 컨디션이 좀만 좋았다면, 아니면 내가 실력이 조금만 좋았더라면 무난하게 여기서 1솔 더 충분히 하고 2솔까지도 더 할 수 있었을 텐데 그 부분이 너무 아쉬웠다.

그나저나 예선이 40팀에서 50팀정도 뽑는다고 했는데 우리팀이 뽑힐까 걱정이 되긴 한다. 내 실력을 통감하고 앞으로 매일 버추얼 돌리리라 나 자신에게 약속한다