
지난 IUPC 2025의 결과로 shake! 에 다녀왔습니다.
결과는 장려상으로, 수상 가능한 인원 9명 중 9등으로 겨우 수상에 성공했습니다.
스코어보드 공개 전까지만 해도 그냥 망했다는 생각뿐이었는데... 수상이 나름의 위안이 되었습니다.
원래 실력은 이게 아닌데, 더 잘할 수 있는데, 싶었지만
스코어보드가 공개되고, 대회가 끝나고 생각하니 그저 실력대로 나왔다는 생각뿐입니다.
지난 대회 때의 약점이 그대로 다시 드러난 것 같습니다.
오프라인 대회에서 한 문제를 잡아 길고 깊게 파고들지 않고,
설령 한다 해도 연습할 때 보다 시야가 좁아져서 같은 내용만 반복하여 생각하는 건 문제가 있습니다.
어려운 문제를 길게 생각하며 관찰로 풀어내는 경험,
그리고 그런 관찰에 사용되는 도구와 지식들이 부족했었고, 한동안은 이런 약점 보완에 집중하려 합니다.
비록 높은 순위는 아닐지 모르지만,
앞으로의 공부 방향이 잡혔으니 수상보다 더 값진 건 이게 아닐까? 싶습니다.
아래는 대회 타임라인입니다.
일부 문제의 스포일러가 포함되어 있습니다.
~0:07 A (+)
문제를 다 읽지도 않고 손부터 움직여서... 틀린 인덱스를 출력한다고 생각해 시간을 많이 썼습니다.
'그러면 스페셜 저지가 아닌가' 싶다가 그냥 틀린 숫자만 출력하는 걸 알고 AC를 받았습니다.
문제를 잘못 읽는 게 이걸로 끝났으면 싶지만, 이후에 같은 실수를 한번 더 하게 됩니다.
~0:14 B (+)
연습 때 이 문제를 풀지 않았더라면 못 풀었을 것 같습니다.
덕분에 여집합을 보는 아이디어가 바로 떠올라서 AC를 받았습니다.
(오버플로 걱정에 구현 중 언어가 2번 바뀌었습니다...)
~0:30 D
남은 문제는 난이도 순서가 무작위라, 맨 처음 문제부터 순서대로 읽기로 했습니다.
그중 D가 1부터 x까지 XOR 결과의 규칙성을 가지고 푸는 문제인 것 같아서 조금 건드리다가,
경우의 수가 너무 많아져버려서 일단 넘어갔습니다.
~0:54 G (-1)
~1:20 G (-2)
G를 읽고 이건가? 싶어 짠 풀이가 2번이나 WA를 받습니다.
사실 문제를 잘못 읽었습니다.
"어떤 두 개의 간선을 제거해도 항상 2개 이상의 컴포넌트로 나뉘는지 판별하라"는 문제를
"어떤 두 개의 간선을 제거해서 2개 이상의 컴포넌트로 나눌 수 있는지 판별하라"는 문제로 이해했습니다.
이걸 전혀 알아채지 못한 채 흔들리기 시작했고, 문제를 잘못 읽었다는 사실은 너무 늦게 깨닫게 됩니다.
~1:34 J (+2)
J는 읽자마자 DP다 싶어서 이해한 대로 바로 짰습니다.
T의 십진수 문자열에 대응되는 S의 부분문자열이 범위를 넘어가면 멈추는 예외 처리가 필요했는데, 그게 빠져서 두 번 정도 틀렸습니다.
~1:50 E (-1)
~2:38 G (-3)
그리고 J 이후로 쭉 말리게 됩니다.
E가 어쩌면 쉬운 문제가 아닐까? 싶어 제출한 코드는 아니라는 걸 알려주었고,
G에서 내가 구현 실수를 한 게 아닐까? 싶어 처음부터 다시 짠 코드는 어딘가 또 틀린 건지 WA를 받아옵니다.
~2:44 G (+3)
이 때 문제를 다시 읽었던 이유는 모르겠습니다.
맞아야 할 문제를 틀리면 문제를 다시 꼼꼼히 읽는 습관이 생겼는지 G를 다시 읽었고, 대회 시작 2시간 반 만에 문제를 잘못 이해하고 있던 걸 깨달았습니다.
결국엔 맞췄다는 어떤 안도감보다 2시간 반 동안 문제를 잘못 이해하고 있었다는 그 사실이 너무 아팠습니다.
~3:00
그리고 스코어보드가 프리즈 되었습니다.
수상권 바깥인 4솔 하위권인 데다 연이은 실수에 마음이 크게 흔들리고 있었고,
목표였던 수상도 불가능할 것 같다는 불안감이 닥치기 시작했습니다.
그렇게 나온 결론은 페널티를 감수하고서라도 솔브 수로 밀어야 한다는 생각이었습니다.
남은 문제 중 해볼 만한 문제는 D, E, H였고, 그중 정답에 가장 가까웠던 D를 잡았습니다.
~3:18 D (-1)
복잡한 경우의 수를 다 나누고 계산해 봐서 제출한 코드가 WA를 받습니다.
근데 이게 대체 어디서 틀린 건지 몰랐고, 그제야 나이브를 짜봐야겠다는 생각이 들었습니다.
~3:42 D (-2)
~3:47 D (-3)
~3:49 D (-4)
나이브로 나오는 반례마다 예외처리하고, 비교하는 과정을 반복하다 보니 문득 그런 생각이 들었습니다.
"그냥 나이브로 뽑고 거기서 규칙성을 찾으면 되지 않을까?"란 생각이었습니다.
지금 생각하면 너무 당연한 건데도, 그걸 떠올리는 게 너무 늦었습니다.
그 생각이 든 게 17시 55분, 사전에 대회 종료로 인지하고 있던 시간인 18시가 되기 5분 전이었습니다.
~3:53 D (+4)
사실 그때 대회가 10분 미뤄졌다는 걸 까먹고 있었습니다.
18시가 되고 망했다며 새로고침만 누르고 있었을 때, 10분이 더 있다는 걸 그제야 깨달았습니다.
다행히 대회 종료 전 D에서 AC를 받아 5솔로 대회를 마무리하게 되었습니다.

멋진 대회 준비해주신 모든 운영진분과 관계자 분들께 감사드립니다!
'PS > 후기' 카테고리의 다른 글
| 2026 인하대학교 프로그래밍 경진대회 (IUPC) 출제 및 운영 후기 (4) | 2026.05.27 |
|---|---|
| 2025 인하대학교 프로그래밍 경진대회 (IUPC) 참가 후기 (2) | 2025.07.29 |