
IGM을 달성했다. IGM을 달성하면 후기를 쓰는 게 일종의 관례인 것 같아 글을 쓴다.
$($딱 여기까지 작성하고 진전이 없어서, 다른 후기글 NMK개를 흡수해 돚거해서 쓰기로 했다$)$
소감
일단 IGM을 달성해서 매우 기쁘다. 사실 별로 딱히 그렇게까진 기쁘지 않은 것 같다. 사유는 최근 정올 여름학교 모의고사 성적에 있는 것 같다. GM을 달성했을 때는 정말 기뻣는데, 그때 내가 별로 GM치고 잘하지 않는다는 사실을 깨달은 것 같다.
How to Study?
딱히 나만의 공부법?은 없는 것 같다. 이것도 모 블로그를 돚거해서 비슷하게 작성하기로 했다.
1. Virtual Contest로 많은 대회를 풀어보기
코드포스 레이팅을 올리는 가장 효과적인 방법은 최대한 많은 코드포스 대회에 참가하는 것입니다. 코드포스에서 제공하는 기능인 virtual contest로 과거 대회를 풀어보면 실제 대회랑 유사한 환경에서 문제를 풀 수 있고, 코드포스에 자주 나오는 유형을 파악하거나 전략을 세우는데 매우 큰 도움이 됩니다.
라고 한다.
위에 레이팅 그래프를 보면, 퍼플에서 블루로 떨어지고 고생했던 시절이 있던 걸 알 수 있다. 그 시절에 솔브드에서 지인분들과 함께 버춸을 많이 돌았던 것 같다. 그 뒤에 매우 가파르게 실력이 뛰어오른 걸 알 수 있는데, 버춸 덕이 없지 않아 있다고 볼 수 있다.
오렌지 달성 이후부터는 버춸을 자주 안 돌았던 것 같다. 솔브드 모 스레드가 $($버춸도는방$)$ 영업을 안 한 탓이 크다고 볼 수 있다. 오렌지에서 전전긍긍하다가 셋을 잘 만나 3연  역대급 퍼포를 내고 GM에 등단하였다. 
내가 생각하는 버춸의 장점은 많이 돌면 초반 푸쉬도 빨라지고, 잘 말리지 않게 되는 것 같다. 그 외에는 버춸을 많이 돌지 않아 잘 모르겠다. 코드포스 레이팅을 목표로 하고 있는데, 연습 방법을 찾고 있다면 버춸이 제일 단순하고 좋은 선택지인 것 같다.
2. 업솔빙을 반드시 하기
대회가 끝나고 풀지 못했던 문제를 다시 푸는 것을 업솔빙이라고 합니다. 만약 대회 중에 시간이 없어서 충분히 오래 고민을 못 했다면 좀 더 고민을 해서 푸는 것을 시도해보고, 만약 오래 고민해도 모르겠다면 풀이(에디토리얼)를 읽으시길 바랍니다.
제가 업솔빙할 때 가장 중요하게 생각하는 것 중 하나가 바로 구현을 하는 것입니다. 되게 많은 사람들이 풀이를 읽거나 직접 떠올린 후, 문제의 풀이를 찾았으니 업솔빙을 했다고
생각하고 넘어갑니다. 하지만 몇몇 문제들은 풀이를 떠올리는 것보다 풀이를 구현하는 것이 난이도가 높은 경우가 있습니다. 또한, 구현을 하지 않으면 틀린 풀이를 맞았다고 생각하게 될 가능성이 있습니다. 코드포스 레이팅을 올리기 위해서는 빠른 문제풀이 실력뿐만 아니라 빠르고 정확한 구현 + 디버깅 실력이 필요하기 때문에 구현을 하는 것을 추천드립니다.
업솔빙은 매우 중요한 것 같다. 사실 그렇게 중요하진 않은듯..? 케바케인 것 같다. 나는 그냥 원하면 업솔빙을 하는 편이다.
코드포스와 별개로, 풀이를 직접 구현을 하는 것은 약 한달 전까지는 별로 안 중요하다 생각했다. 구현이 뜨어어어엉인 문제라도, 대회 중이라면 이 악물고 짤 텐데 굳이 지금 고생할 필요가 있나? 같은 생각이였다. 근데 최근에 생각이 좀 바뀌었다. 여름학교 2차 모의고사 때였다. 2번 문제를 읽었는데, 자구자구 문제인 것 같길래 고민했더니 TL 내로 돌 것 같은 적당한 풀이를 찾아냈다. 하지만 구현이 좀 길 것으로 예상되어, 다른 풀이를 10분 정도 고민했는데 딱히 나오지 않았다. 그래서 짜기로 했는데, 막상 짜기 시작하니 구현이 끝도 없었다. $($6000B 가량을 짰다.$)$ 문제는 짜기만 하는 게 아니라 디버깅도 해야 한다는 거였다. 다행히도 정올 2차에서 얻은 교훈으로, 바로 스트레스 돌리기로 넘어가서 디버깅할 때 스트레스를 그리 받지 않았던 것 같다. 하지만 2번 만점을 받은 직후 시간은 이미 3시간이 지난 후였고, 아직 나는 3, 4번 문제에 대해 깊은 고민을 하지 못한 상태였다. $($1번은 잠깐 고민했는데 딱히 진전은 없는 상황이었다$)$ 2시간이 남은 시점에서, 뭘 해야 할지 막막했다. 아무런 시도도 하지 않은 3, 4번에 훨씬 쉬운 문제가 있어서, 그 문제를 풀지 않으면 망한다던가 아니면 오히려 3, 4번이 매우 어렵고, 1번이 사실 비교적 쉬운 문제라던가.
결국 적당히 긁다가 1번을 고민했지만, 시간 내에 풀지는 못했다.
끝나고 보니, 1, 4번이 적당히 풀만한 문제였고 3번은 사람이 풀 수 있는 문제가 아니였다.
$($ D3 D1 R? D5 정도의 난이도였다고 한다. 2번은 "자구"라 티어가 높지 체감은 쉬운 문제다 $)$
우현이는 1/2를 풀고 나머지는 점수가 거의 없었고, 서준이는 4를 풀었지만 나머지 점수가 저조했다. $($ 결국 난 2등을 했다 $)$
우현이한테 물어보니, 자기는 1부터 그냥 차례대로 밀었다고 했다. 1, 2번에 각각 2시간 / 2시간 정도 썼다고 한다. 나도 1번 풀이에 거의 근접했지만, $($풀테 직전의 서브태스크까진 긁었다$)$ 분정을 한다는 멍청한 생각으로 인해 풀지 못했다. 제일 후회되는 점은 2번에 3시간 가까이를 태워서, 마음이 급해져 그 이후 문제를 멀쩡한 정신으로 풀기가 어려웠다는 것이다. 2번을 1시간 내로 풀었다면 충분히 승산이 있..지 않았을까. 머 딴소리를 너무 많이 한 것 같긴 한데, 결론은 구현이 꽤나 중요하다는 것이다. 결국 개인 대회에서는 멘탈관리가 중요한 만큼, 빠르고 깔끔하게 구현해 맞왜틀로 스트레스를 받지 않는 능력이 필요하기 때문이다. 암튼 구현연습은 꼭 하도록 하자.
3. 에디토리얼을 읽어보기
이 문단은 사실 코드포스에만 한정되는 내용이 아니라 모든 공부에 적용이 되는 내용이라고 생각합니다. 일반적으로, 풀이를 보는 상황은 그 문제를 해결하지 못했을 경우입니다. 문제를 자신의 힘으로 해결했을 경우 풀이를 따로 보지 않는 경우가 많습니다.
하지만 저는 문제를 스스로 풀었어도 의도된 풀이$($에디토리얼$)$를 읽는 것을 추천드립니다. 이유는 다음과 같습니다.
1. 새로운 관점의 사고방식을 배울 수 있다.
2. 더 간단한/깔끔한 풀이를 알게 될 수 있다.
3. 새로운 알고리즘이나 트릭, 자료구조 등을 알 수 있다.
1번째 이유에 대해 추가적으로 설명을 하자면, 사람마다 특성이 다르기 때문에 사고방식도 사람마다 천차만별입니다. 나한테는 자명한 접근방식이 다른 사람들한테는 떠올리기 힘든 접근일 수도 있고, 그 반대일 수도 있습니다. "이 사람은 어떤 생각을 해서 이 풀이에 도달한 것일까?"라는 질문에 대한 답을 찾으면서 풀이를 읽게 되면 풀이를 쓴 사람의 사고방식을 대략적으로 이해할 수 있고, 새로운 관점으로 문제를 바라볼 수 있게 됩니다.
다 맞말인 듯 하다. 업솔빙과도 관련해서 첨언을 좀 하자면, 나는 업솔빙을 다음과 같은 기준으로 한다.
- 풀고싶으면 계속 품
- 풀기 싫어지면, 바로 에디를 깜
- 그냥 딱히 업솔빙하기 귀찮은 문제면 바로 에디까고 풀이읽음
마지막 기준을 보면, 바로 에디를 까는게 안 좋다고 할 수도 있지만 내 생각은 좀 다르다.
어차피 지금 아니면 다시 안 돌아볼 문제일 텐데 그냥 까도 상관 없다는 생각이다. 그렇게 생각할 수도 있다. "문제를 고민해서 푸는 연습을 해야하지 않느냐" 이건 맞말인 듯 하다. 하지만 세상에는 문제가 매우 많고, 굳이 이 문제로 그걸 연습할 필요는 없다 생각한다.
4. 랜덤 골드/플래 디펜스 연습하기
특정 티어에서 문제를 랜덤으로 뽑고, 제한시간 내로 푸는 것을 흔히 랜덤 디펜스라고 부릅니다. 코드포스는 제한시간이 2시간이기 때문에 고난이도의 문제를 풀지 못해도, 골드나 플래티넘 난이도의 문제를 안정적으로 빠르게 풀 수 있으면 높은 등수를 받을 수 있습니다. 랜덤 골드/플래 디펜스를 통해 실력을 충분히 올리면 코드포스 실력도 오를 것입니다.
골드를 안정적으로 풀 수 있게 되면 대략 퍼플~오렌지 정도인 것 같고, 플래티넘을 안정적으로 풀 수 있게 되면 IGM까지 노려볼만한 것 같습니다.
안 해봐서 잘 모르겠다. $($ 아직 재미를 못 붙임 $)$ 써 있는 말은 거의 정설인 것 같다.
결론
다 떠나서, 꾸준함양치기 가 제일 중요하다고 생각한다. 어제의 나보다 발전만 하면 되는 것 아니겠는가.
잡설
$($전문 생략$)$ 이제 IOI 선발고사를 칠 기회가 한 번밖에 남지 않았다. 코드포스에서 좋은 성적을 보여준 것처럼 선발고사를 잘 쳐서 IOI 2026을 나가보고 싶다. IOI 2026는 우즈벡에서 열리는데, 이번에 국가대표가 되어 우즈벡에 다른 국대들과 함께 갈 수 있다면 아주 멋진 경험이 될 것이다.
+ 전 IOI 국대는 다시 국대 못 하게 하는 룰좀 추가해줬으면 좋겠다. 나도 쌀좀. 중국은 해주는 듯 하다.
요즘 AI 기술이 눈부시게 발전하고 있고, 이젠 나 정도는 AI한테 슥삭 닦인다는 것도 안다. 머지않아 PS계가 멸망하지 않을까..? 라 고 생각하고 있다. 머 아무래도 이런 걱정은 안 하는게 좋지 않을까 싶다. $($ 사실 은퇴마려우면 개추 $)$
거두절미하고 CTS 2024 day 2나 돌러 가야겠다.
'PS' 카테고리의 다른 글
| 백준 34344 공연 준비 풀이 (4) | 2025.09.14 | 
|---|---|
| OI별 인상 (7) | 2025.06.07 | 
| NOI 2023 桂花树$($Osmanthus Tree$)$ (0) | 2025.05.14 | 
| 좇깡양공부법으로 IOI만점 쟁취하자 (2) | 2025.05.14 | 
| 그리디를 여행하는 PS러를 위한 안내서 (2) | 2025.04.15 |