본문 바로가기
Diary/Competitive Programming

260110 - 2025 경인지역 대학 연합 프로그래밍 경시대회 shake! 후기

by dodobow 2026. 1. 14.

운이 좋게 5등으로 우수상 턱걸이

 

꽤 인상 깊고 즐거웠던 대회였기에 지금까지의 후기들보다 조금 더 진득하게 기억을 남겨보려 한다.


대회 전

 작년 11월 29일, 경희대학교 예선을 4등으로 마치고 기말고사에 치이며 학기를 마무리했다. 참 아이러니한 게, 시험 기간에는 그렇게 PS가 재밌었는데 종강과 동시에 급격히 흥미를 잃어버렸다. 분명 하루에 막 골랜디 20문제씩 하고 코포도 맨날 하는 그런 나를 기대했지만, 정작 대회 직전 남은 건 그냥 알차게 놀았던 나였다. 

 

 대회 전날까지만 해도 친구가 없는 이슈로 외롭게 대회장에 갈 생각이었지만, DM으로 PS에 관한 대화를 나눈 적이 있는 dbgusdn012님으로부터 대회 전 미리 만나서 같이 가자는 연락이 왔다. 한 줄기 빛과 같은 연락이었기에 바로 좋다고 했고, 대회장 입실 1시간 정도 전에 만나기로 했다. 처음 만나는 자리였기에 조금 어색할 줄 알았으나, 인생과 미래에 대한 진지한 고찰을 포함해서 수다 좀 떨다 보니 금방 편해졌다. 그리고 2026년 팀 대회 팀원 구성에 관한 이야기도 나왔는데, 친구 없는 나에게는 이 또한 정말 희소식이었다. 이 자리를 빌려 다시 감사를 표합니다...

 

 대회장 입실 후 대회 시작까지는 크게 기억에 남는 일이 없다. 참가자 등록 후 자리에 앉기까지의 과정에서 뭔가 상당히 많은 것들을 받았다는 사실만이 기억에 남는다.


대회 진행

[00:02:34] A AC

[00:08:00] B AC

 앞 두 문제에서 말리면 안 된다는 생각이 있었다. 왜냐하면 예선에서의 아픔이 떠올라서... 그래서 좀 늦더라도 천천히, 틀리지 말고 제일 쉬운 2문제를 풀고 그 뒤로는 스코어보드를 따라갈 생각이었다. 그런데 생각보다 금방 풀려서, 그냥 내가 찾아다니며 풀어야 하는 상황에 이르렀다. 

 

[00:30:29] J TLE

[00:55:55] J WA

[01:00:27] J WA

[01:02:10] J AC

 지문이 짧은 문제들 위주로 쭉 읽어보니까 J가 제일 쉬워 보였다. TMI 하나 말하자면, 나는 '어떤 문제든 BFS로 접근하기'라는 나쁜 습관?이 있다. 슬프지만 이 문제에서도 그랬다.

 지금 상태를 기준으로 동일 문자 / 동일 문자, 문자 / 숫자, 숫자 / 숫자의 경우로 나눠서 BFS 돌리면 될 것 같았다. 그리고 시간 초과를 우려해서 길이 2000짜리 TC도 만들어서 돌려봤는데 TLE가 나를 반겨주었다. 생각해보니까 두 문자열이 'aaa...a' / '111...1' 같은 경우면 문자열 슬라이싱을 탐색할 때마다 하니까 시간복잡도가 N^3이 그냥 넘어버리더라. 그래서 visit 처리를 좀 다듬고, 문자열을 통째로 들고 다니는 게 아니라 각 문자열의 '지운 글자 수'로 BFS를 돌리는 방식으로 해결했다. 그 과정에서 0에 대한 처리가 부족했기에 WA를 2번 받았다. 아무튼 BFS로 풀었다 ㅋㅋ.

 

[01:32:43] G AC

 스코어보드를 쓱 보니, D E G H? 정도에서 솔브가 나오기 시작했던 걸로 기억한다. D는 뭔지도 모르겠는 비트 연산 문제라 접어두고, 세 문제를 머릿속에 넣은 채로 고민하기 시작했다. 

 G가 사실 제일 감이 안 잡혔다. 사실 문제 이해도 잘못해서 헛다리를 짚기도 했다. 이분 그래프로 만들 수 있는지에 대한 여부를 판단하는 문제로 이해했었는데, 그게 아니라 '무조건' 이분 그래프가 되는지에 대한 문제였다. 아무튼 문제를 제대로 이해한 뒤 열심히 그림을 그리다 보니 '설마 이거 M > N이면 다 되나?' 하는 생각이 들었고 설마가 진짜였다. 애드 혹을 좋아하는 입장에서는 최고의 문제였다. 

 

[02:07:54] E WA

 다음 타겟은 E였다. 큰 수 먼저 자리 잡아주면 되나? 싶어서 짰는데 틀렸다. 생각해 보니 단조적인 연산은 먹히지 않는다는 걸 깨닫고 풀이를 깔끔하게 지웠다.

 

[03:00:37] D WA

[03:01:15] D WA

[03:05:24] D AC

 1시간 동안 무기력함을 느끼다가, D가 점점 풀리는 걸 보고 갑자기 다시 이끌림을 느꼈다. TMI 하나 더 말하자면, 나는 '하드 코딩으로 작은 N에 대한 답을 보고 규칙성 찾기'를 아주 좋아한다. D에는 이 전략에 대한 가능성이 강하게 느껴졌다. 

 예상대로 홀수와 짝수에 대해 규칙성을 찾을 수 있었고, 스코어보드가 프리즈 된 지 5분 만에 1문제를 더 풀 수 있었다. 그런데 한 번은 예외 처리 실수로 틀리고, 한 번은 11...10 꼴의 수에서 예외가 존재한다는 걸 캐치하지 못하고 틀렸다. 5솔 중 페널티 최소로 5위를 기록했지만, 만약 페널티 차이로 순위가 갈렸더라면 이 부분이 아쉬웠을 것.

 

[~04:00:00] E WA * 4

 H는 아무래도 감이 잡히지 않았다. DP 같이 생겨서 열심히 DP 테이블을 그려봤지만 도저히 모르겠어서 그냥 '역시 DP는 어려워 ㅎㅎ'하고 던져뒀다. 근데 끝나고 들어보니 그리디라더라. 젠장. 

 E는 꽤나 많은 아이디어를 시도했다. 정렬된 수열에서 같은 자리의 원소와의 차를 이용해서도 접근해 봤고, 그래프처럼 생각해서 순열 사이클 분할로도 생각했다. 하지만 모든 방법 모두 결국 AC에는 닿지 못한 채로 대회를 마무리하게 되었다. 


대회 후

 대망의 프리즈 오픈 시간이었다. 4~5솔 근처로 정말 많은 분들이 몰려 있어서, 이제 내가 할 수 있는 건 해탈하고 기도하는 것이 유일했다. 그리고 결국 그 결과는 5솔 동점자 중 가장 적은 페널티로 5위. 턱걸이로 우수상 수상에 성공했다. 그리고 대회 전부터 대회 종료까지 심심한 나의 말 상대가 되어준 dbgusdn012님은 1위를 차지했다. 분명 자신 없다고 그랬었던 거 같은데... 아무튼 같은 학교로서 상당히 자랑스러웠다. 다시 한번 축하드립니다. 

두근두근 프리즈 오픈 결과

 

 사실 대회 전까지만 해도 크게 기대하지 않았다. 9등 안에 들어서 입상이나 할 수 있으려나 싶은 생각이었고, 못 들면 내년을 기약하며 넘어가기로 했다. 그런데 막상 대회가 시작되니 즐겁고, 승부욕에 정말 열심히 하게 되더라. 하긴 재밌어서 시작한 PS였는데, 재미가 없을 리가 없었다. PS를 계속 잡고 있는 게 맞나 싶은 고민도 들고, 이제는 좀 다른 공부를 위해 접어야 하는 게 아닌가 하는 생각까지도 들었는데, 역시 그건 힘들 것 같다. 그만 두기엔 너무 즐겁다. 

 

 첫 교외 오프라인 대회였다. 규모도 크고, 대회도 재밌고, 진행도 너무 만족스러웠다. 수많은 운영진분과 후원 덕분에 좋은 경험을 남길 수 있었다. 이런 경험들이 쌓이고 추억이 되어 PS를 놓지 못하는 것일지도 모르겠다. 그래도 제일 큰 대회를 넘긴 지금, 당분간은 하고 싶은 거 하면서 조금 쉬어야겠다. 다음이 어떤 대회가 될지는 모르겠지만, 다음을 기다리며.