2025 ICPC 예선 후기에서 팀원 소개를 한 바가 있으니 참고바랍니다.
그 동안 팀연습을 하는데 6솔만 뚫고 7솔 이후에는 항상 고전해서 이번에는 꼭 뚫고 싶었습니다.
a_cedia님이 본선 준비 기간 도중 퍼플을 찍고 애드혹 플레 푸는 능력이 늘어나서 내심 기대를 하고 있기도 했습니다.
어쩌다 열차를 예비소집날 오전 7시에 잡아서 (지금 생각해보니까 왜 이리 일찍 잡았지라는 생각도 했음...) 그 때 밤을 새고, 본선 전 날에는 12시간을 자서 컨디션은 오히려 괜찮았던 것 같았습니다.
팀노트는 전하고 거의 비슷하게 했는데, 팀연습을 하는 도중 제가 넣은 Aho-Corasick 코드에서 트라이는 만들어두고 정작 핵심인 KMP식 구현은 만들어두지도 않았다는 점을 알게 되어서 수정하게 됐습니다. 그 외에도 제가 빠트린 게 좀 많이 있어서 앞으로는 아무래도 코드 검토라도 해봐야되겠습니다...
예비소집은 솔직히 한 게 Linux 적응 빼고는 딱히 없었습니다. 할 게 하도 없어서 PB를 42번 제출해서 기괴한 페널티를 만드려고 했으나 정작 풀어보려고 하니까 귀찮아져서 버렸어요.
아무튼 원래 이번에는 딱히 토템(?)을 생각하고 있지는 않았는데 a_cedia님이 고양이 인형 (뒤에 숨겨진 한별이)를 가져왔습니다. 다음 번에 일페 갈 때 한별이 키링 같은 거 좀 사가야 되겠습니다 ㅎㅎ
대회 진행
0:00
문제지를 열고 처음에는 a_cedia님이 처음 파트, 제가 다음 파트, additionalpass05님이 마지막 파트를 맡기로 했는데 저는 가운데 문제가 죄다 어려워보여서 금방 버리고 스코어보드 따라가서 L을 풀기로 했습니다. 처음에 최대 최소 헷갈려서 upper_bound, lower_bound 쓰는 뻘짓을 해서 밀리긴 했는데 그거 외에는 무난하게 풀긴 했습니다. (1 Solve - 17 Min)
0:17
M도 많이 풀었길래 보고 3의 배수 아니다라는 말을 듣고 제가 '1 2 3 ... n 3번 출력하면 된다'라고 말하고 그대로 1분 컷 했습니다. 작년 리저널에서는 이런 꽁으로 주워먹는 문제가 없었는데 좀 의외였습니다. 만약 3의 배수가 가능했다면 난이도가 어떻게 달라질지 궁금하기도 합니다...만 그거도 한 칸씩만 잘 옮기면 되는 거라 뭐가 됐든 간에 작년 리저널 가장 쉬운 문제보다도 아래일 것 같습니다. (2 Solve - 36 Min)
0:19
그 뒤에는 스코어보드 눈치보며 문제를 막 해결하려 했습니다. C는 a_cedia님이 풀이에 근접했던 것 같은데 O(n^4)이라고 해서 잠시 넘겼습니다. 사실 처음에 읽기 싫어서 넘겼는데 제가 다시 G를 보니까 전형적인 이탐문제일 거 같아서 구현을 해봤습니다. 그런데 십몇분 가량을 이탐 과정에서 무한루프에 갇혀서 뭔가 문제가 했는데... 횟수가 처음으로 X보다 커지는 횟수를 구해서 잔여 횟수가 음수가 되어서, while(K--) 루프가 무한히 돌게 된 겁니다... 이탐 된다/안 된다 여부 찾기 이런 거는 구현 항상 헷갈리는 거 같네요.
여담으로 서울역에서 만나게 된 동국대 학생 분들이 이 문제에서 스팸 없이 50틀을 찍어서 특별상을 받게 되었는데, 나중에 물어보니 ll 오버플로우 때문이라고 합니다. 운 좋게도 우리 쪽에서는 ll 오버플로우 없이 구현에 성공했는데, 그 사실을 모른 체 구현한 분들이 불쌍하면서도 50번이나 수정을 거치면서 시도한 분들이 놀랍기도 했습니다. (본인은 3틀 정도 하면 '데이터세트가 틀린 거 아니냐'하고 정신승리함...) (3 Solve - 87 Min)
0:51
그 동안 스코어보드는 E가 약간 풀려있어서 additionalpass05님이 맡게 되었고, 저는 a_cedia님과 D를 맡았습니다. 제가 어떤 거는 항상 고정이고 어떤 거는 항상 움직일 수 있다라는 말을 듣고 a_cedia님이 바로 뚝딱 아이디어를 완성했습니다. 그런데 제 문해력이 딸리는 건지 처음에 의도한 거하고 다른 구현을 해버렸고, 그 다음에는 큰 책 작은 책 분류하는 거 잊어먹어서 1WA를 먹고 나서야 풀게 되었습니다. 에디토리얼 상으로 이 문제가 (우리가 푼 문제 중에서는) 가장 뒤에 나왔는데, a_cedia님이 그 사실에 좀 의아해하던 것 같습니다. 근데 저였으면 고정/자유이동 판단 이후 그대로 못 풀 거 같아서 그래도 백준에 올라가면 플레는 갈만하다고 생각함... (4 Solve - 201 Min)
1:34
그러고 나서 유기했던 C를 다시 주웠는데, a_cedia님이 트리 형식이니 유사 위상정렬로 하면 된다는 사실을 찾았습니다. 바로 구현을 시작했는데, 계속 틀려서 원인이 뭔가 했더니 가로줄 세로줄 거꾸로 씀, if문에 중괄호 안 넣음 같은 정말 멍청한 실수였습니다. 디버깅만 얼마를 했는지 모르겠지만 다행히 예제가 맞으면 나머지 테스트케이스에서 틀리기는 어려운 구조였기 때문에, 제출할 때는 WA 없이 맞았습니다. (5 Solve - 338 Min)
이 때까지만 해도 2n위 정도에 들었고 이렇게 안정하게만 하면 순위를 유지할 수 있을 거라 생각했습니다.
하지만 여기서부터 이 사람의 엄청난 삽질이 시작됩니다.
2:17
I번은 전형적인 코테 문제 같아보였습니다 (애니팡처럼 줄로 되어있는 거 없애는 형식의 문제입니다). 저는 몇 주 전에 코테를 본 경험이 있고 기출문제와 유형도 비슷하기에 한 번 해보겠다고 나섰습니다. 진짜 깡구현이라 오래 걸렸습니다. 처음에는 중력을 오른쪽으로 (...) 작용하게 만들어서 예제가 안 나오고, 그 다음에는 Stage 1 바로 다음에 반복 없이 Stage 2를 진행한다거나, 아님 비브라늄 블록을 없앤다거나 등등 여러 이유로 무한루프를 만들고 세그폴트가 나기도 한 끝에 결국 만들어서 제출을 했....는데 틀렸습니다 (1WA)
그래서 다시 보니까 처리과정에서 if문에 중괄호를 안 넣었습니다. 그래서 고쳐서 냈더니 또 틀렸습니다. (2WA)
그리고 나서, 위치를 트래킹할 게 아니라 폭탄 번호를 트래킹하는 게 맞다고 생각하고 다시 제출했더니 또 틀렸습니다. (3WA)
3:30
그래서 전 그 코드를 프린트하고, 그 동안 a_cedia님이 합류한 E번 문제는 그리디로 한 번 해볼까라는 추측을 노리고 additionalpass05님이 구현하였으나 거기서도 WA가 쌓이게 되었습니다.
그 사이에 전 점심을 먹고 고민하였는데 아무리 생각해도 답이 안 나와서 a_cedia님에게 물어보았더니, 알고 보니 폭탄을 동시에 터트리지 않은 탓에 여태까지 틀렸던 것입니다.그래서 코드를 약간 뜯어고쳤더니 예제가 안 나왔습니다. 디버깅을 하니 입력 if문에 중괄호를 안 넣어서 제대로 돌려지지가 않았던 것입니다.그래서 고친 코드를 돌렸더니 또 틀렸습니다. (4WA)다시 프린트를 하고 E에서 그 동안 그리디 풀이를 약간 고쳐서 내기로 했는데 WA는 계속 쌓여갔습니다.4WA 코드를 보니 조건문 하나에서 if문 2개에 중괄호를 안 넣어서 코드가 이상한 방향으로 새어나갔다는 것을 알게 됐습니다. 이번 문제에서만 똑같은 실수 3개째입니다... 그래도 고쳤으니 됐다하고 냈습니다. 그러니 또 틀렸습니다. (5WA)
슬슬 정신이 나가기 시작했고, 내가 도대체 어딜 잘못한거지하고 E는 볼 생각도 안 하고 (정작 대회가 끝나고 거의 바로 발상을 생각해버렸습니다) I만 보다가 팀원 분들한테 예외를 물어봤습니다.
additionalpass05님이 '크로스 형태로 젬이 모여있으면 안 되지 않나'라고 했는데 저는 맨 처음부터 그 경우를 고려해서 된다라고 자부하고 코드를 돌...렸더니 처리가 안 됐습니다. 그래서 왜인가 봤더니 while문 중괄호 순서를 틀리게 해서 여태까지 코드가 내내 꼬였던 겁니다. 진짜 어지간합니다. 그걸 고쳤더니 드디어 6솔을 했습니다. 338분인 페널티는 이 문제로 무려 729로 뻥튀기가 되었습니다. (6 Solve - 729 Min)
4:51
그리고 나서 E를 마저 풀려 했는데 시간이 저 꼴이라 그냥 자포자기한 채로 원래 그리디에서 수정만 조금 했는데 애초에 이건 발상이 틀려서 WA만 계속 쌓다가 끝났습니다.
결론
연세대 4팀 중 4위인 44등 (?)으로 마무리 했습니다. 솔직히 애초에 4시드 자격으로 들어온 거고 고점 은근 잘 띄운 예선에서도 30위 턱걸이라 얼마 정도 예상은 하고 있었으나, 초반에는 잘했으면서 E/K 같은 문제 제대로 잡았으면 7솔, 심지어 8솔도 할 수 있는 상황에서 제 손으로, 그거도 같은 실수 4번으로 말아먹은 게 참 허탈합니다. 이 사람이 도대체 어떻게 이 팀의 구현러가 됐는지, 그리고 어떻게 Python이 아니라 C++를 주력으로 쓰는지가 의문일 수준입니다. 뭐 그러면서 배우는 거니 어쩌겠어요. 그리고 PS커뮤에서 알던 분들도 실제로 만나 뵙고 이야기도 터고 하면서 얻어갔던 게 많은 대회였던 것 같습니다. 다음 주 연세대 경시대회를 위한 연습도 확실히 됐던 것 같아요. 대회가 끝나고는 받은 풍선을 일렬로 연결시키거나 헬륨 흡입처럼 별 이상한 짓 다 하고 다녔습니다 (아쉽게도 저는 원하던 목소리 변조가 나오지 않았습니다. 제대로 흡입 안 해서 그런가). 내일 귀사할거라 남은 시간 동안이라도 재밌게 놀고 가렵니다 하핳
P.S. I번에서 폭탄 마냥 터지는 젬이 있었는데 그런 폭탄 목록을 저장하는 배열 이름을 reze로 잡았습니다. 정작 저는 체인소맨은 커녕 다른 애니조차 본 적이 없습니다. 그러면서 왜 저걸로 지었는지는 모르겠네요. 봐야 하나 🤔
'PS' 카테고리의 다른 글
| YCPC 2025 후기 (0) | 2025.11.29 |
|---|---|
| Connected Profile DP - 싼 비용 (BOJ 1144) (0) | 2025.11.29 |
| [BOJ] 백준 15493 - 수 고르기 (1) | 2025.10.26 |
| 3B1N (였던 것) (1) | 2025.10.13 |
| 2025 ICPC 예선 후기 (1) | 2025.10.12 |