본문 바로가기

카테고리 없음

2025 ICPC Asia Seoul Regional 참가 후기 - Part (1)

0. 배경

ICPC는 프로그래밍 대회를 준비하는 대부분의 사람들이 가장 중요하게 생각하는 대회이다. 규모가 가장 크고, 가장 많은 사람들이 참여하고, 수상의 명예가 가장 높다. 심지어 국내 본선(Regional)에서 좋은 성적을 거둔 팀들은 국제 대회(ICPC Asia Pacific Championship, ICPC World Finals) 진출 자격까지 얻을 수 있다. 

그렇기 때문에, PS를 열심히 하는 다른 모든 사람들처럼, 나는 이 대회에서 반드시 상을 받고자 정말 열심히 준비했다. 작년 겨울에 ICPC 팀을 구한 이후로, 대회 직전인 올해 11월까지 꾸준히 팀원들과 함께 연습했다. 또한 개인 연습도 정말 열심히 했다. 사실 지난 1년 동안 PS를 정말 열심히 한 것이 이 대회만을 위한 것이라고 해도 크게 틀린 말은 아니다. 그렇기 때문에 이번 대회에서는 꼭 상을 받고 싶었고, 받아야 했다. 심지어 팀원들은 이번 대회가 ICPC에 참가할 수 있는 마지막 기회였기 때문에 더 간절했을 것이고, 나도 그것을 알기 때문에 꼭 상을 함께 받고 싶었다.

다만 나는 팀 대회에서 한 번도 좋은 성적을 낸 적이 없다.

처음 참가한 팀 대회는 2023 ICPC Seoul Regional로, 지금도 친하게 지내는 SCSC 동아리원들과 함께 참가하였다. 사실 그때는 PS를 시작한 지 얼마 안 되었을 때라 그렇게 잘 하지 못했다. 예선에서 실버2 난이도의 브루트포스 문제를 30분동안 풀다가 못풀겠다 선언하고 팀원에게 던진 뒤, 플레5 난이도의 DP 문제에서 맞는 풀이를 냈으나 의문에 WA를 계속해서 받다가(대회 끝나고 똑같이 짰는데 맞았다. 왜 틀렸지ㅠㅠ) 대회가 끝이 나서 그대로 본선에 진출하지 못했다. 심지어 그때는 교내 예선 참가팀의 1/2만 본선에 진출할 수 있는 '절반룰'이 있었기 때문에, 문제를 더 잘 풀었어도 그때 실력으로는 진출할 수 없었을 것이다.

2023 ICPC Seoul Regional 예선 결과. CatTowerFriends라는 팀명으로 참가해 3문제를 풀고 딱 100등을 했다.

 
그 다음 해 2024 ICPC Seoul Regional에 같은 팀으로 다시 참가하였다. 예선에서 그렇게 잘 하지는 못했지만 팀원이 4페이지짜리 언어제한/피드백 유형의 똥문제(...)를 풀어내는 유관행동을 해버려서 4솔브 턱걸이로 본선에 진출하게 되었다. 

2024 ICPC Seoul Regional 예선 결과.

 
본선에서는 쉬운 문제 5개까지는 꽤 빠르게 풀었지만 다른 플레티넘 문제들을 놔두고 다이아4짜리 문제로 가서 시간 제한에 맞지 않는 무지성 센트로이드 풀이를 박아버려서 그대로 망해버렸다. 

2024 ICPC Seoul Regional 본선 결과.

 

그 다음 해인 올해에는, hyperion1019(박수인, 경제학부 20), ychangseok(양창석, 수리과학부 21)과 팀을 짜서 쭉 함께 했다. 팀원들 모두 잘 하는 사람들이기도 하고, 나도 올해 들어서 이전보다 PS에 시간을 많이 투자해서 훨씬 잘 해졌기 때문에 이번에는 좋은 결과를 낼 수 있을 것이라 생각했다.

그런 생각을 하며 UCPC 2024에 참가했는데...내가 어떤 문자열 문제에 팀노트에 있는 PST 템플릿 사용법을 몰라서(배열 크기 제대로 안 잡음) 4시간동안 디버깅을 실패해버리는 미친 트롤짓을 함과 동시에, 또다른 문제에는 풀이를 70%정도만 내놓고 뭐 대충 맞겠지 하며 구현하는 최악의 선택을 함으로써 5시간동안 한 문제도 풀지 못하고(팀 전체는 4솔브) 멸망하였다.

UCPC 2025 본선 결과.

 
그렇게 해서 나는 PS를 시작한 2023년부터, 올해 ICPC 이전의 마지막 팀 대회인 UCPC 2024까지, 팀 대회에서 단 한 번도 잘 하지 못했다. 특히 올해는 워낙 실력이 좋은 팀원들이 있기도 하고, 나도 충분히 잘 해졌다고 생각하는데 결과가 그렇지 않으니 스트레스를 많이 받았다. 
 
UCPC를 나갈 당시에는 내가 못 한다고 생각하진 않았는데, 지금 생각해보면 정말 많은 부분이 부족했던 것 같다. 지금 내가 대회에서 잘 하기 위한 가장 중요한 것이라고 생각하는, '쉬운 문제에 어려운 풀이 박지 않기(풀이후보공간BFS하기)'와 '어려운 문제에 쉬운 풀이 박지 않기(될거같은풀이짜지않기)'를 전혀 생각하지 않았을 때이며, 문제해결력과 구현능력 자체도 매우 부족했다. 또한 웰노운 알고리즘들도 모르는 게 정말 많았다. HLD, Centroid, Li-Chao Tree 등등 웰노운 알고리즘들을 사용하는 문제를 한 번도 풀어본 적이 없었고 다른 많은 플레티넘 알고리즘들도 기본 문제만 풀어봤고 실전에서 응용은 할 줄 몰랐다.
 
최근에 공부를 많이 하면서, 이렇게 부족한 점이 많다는 것을 깨달았고 지난 3달동안 부족한 부분들을 모두 채우고 더 높은 실력을 가지기 위해 내가 할 수 있는 모든 것을 투자하였다. 수능 공부할 때 이후로 이렇게 열심히, 치열하게 살아본 적이 없을 정도로 내가 이전과 다른 사람이 되어서 최선을 다해 노력하였다고 말할 수 있다.
 
그렇기 때문에, 이번에는 다를 것이라고 믿었다. 내가 이때까지 대회에서 어떤 성적을 받았든, 결국 마지막 순간에, 이번 대회에서 잘 하고 원하는 것을 이뤄내면 모든 것이 해결되는 것이었다.
그래서 이번에는 반드시 과거의 실수들을 모두 청산하고 부족한 점들을 모두 보완해서 좋은 결과를 내고자 했다. SCPC 때는 상을 꼭 받고 싶었다 정도였는데, 이번에는 진짜 반드시 받아야 한다, 받는 것이 당연하다 라고 생각했다. 상을 못 받는 미래는 생각하고 싶지 않았다.
 
그럼에도 대회에서 잘 하는 것은 다른 문제이다. 나보다 훨씬 경험이 많고 객관적으로 실력이 좋다고 여겨지는 사람들도 한 번 삐끗하면 나락으로 떨어질 수 있는 것이 대회이다. 특히 나 같이 상을 한 번도 받아보지 못한 사람들은 더더욱, 똑같은 실수를 반복할 가능성이 높다고 생각했다. 
 
이러한 배경에서, 이번에는 진짜 모든 것을 준비했기에 결과가 다를 것이라는 기대 반, 이번에도 똑같은 악몽이 반복될지도 모른다는 걱정 반으로 대회를 열심히 준비하였다.


1. 예선 전까지의 준비 과정

8월 29일에 SCPC에서 나름의 성공을 거두고, 2주 정도 나름의 PS 휴가를 가졌다. 정확히 무엇을 했는지는 오래 전이라 기억이 나지는 않는다. 사실 원래는 일주일 정도만 쉬려고 했는데, 일주일 뒤에 매우 심한 감기에 걸려서 강제로 2주 쉬었다. 그렇게 오래 쉰 이후, 이제부터는 진짜 ICPC가 얼마 남지 않았으니 이전과 비교도 안될 정도로 정말 열심히 해야겠다 라고 다짐했다. 학교 수업도 일부러 조금만 신청하였고, 다른 할 일들도 과외 하나를 제외하면 만들지 않아서 진짜 PS에 집중할 수 있는 환경을 만들었다.

중요한 것은 ICPC 전까지 남은, 길다면 길고 짧다면 너무 짧은 3개월 동안 무엇을 할 것인가 였다.
이를 고민하던 도중, 비슷한 시기(SCPC가 끝나고 쉬고 있던 시기)에 올라온, 비슷한 의미를 가지는 서로 다른 두 블로그 글을 읽고 큰 깨달음을 얻었다.

"나는 목표의 지속가능성을 중요하게 생각해서 내가 하다가 힘들 거 같은 정도의 목표를 잡지는 않았다. 대신 목표를 충족하고도 시간이 남을 때 내 마음대로 백준에서 문제를 풀든 랜디를 뽑든 그냥 자유롭게 PS를 더 많이 했다." - platter

 

"요즘은 ‘재능’보다 ‘지속 가능성’을 더 자주 떠올립니다. 재능이 있는 사람은 특정 단계까지 놀라운 속도로 도달하지만, 성장 곡선이 완만해지는 순간 동기가 흔들리고 재미가 옅어지기 쉽습니다. “왜 더 잘해야 하지?”라는 이유가 희미해지면 속도가 꺼집니다. 반대로 지속 가능성은 장기적인 몰입과 인내를 통해 지능을 꾸준히 키웁니다. 재능이 초반의 가속을 제공한다면, 지속 가능성은 결국 목적지까지 데려다주는 엔진에 가깝습니다." - plast


(인상깊다면 하이퍼링크된 전문을 읽어보면 좋다.)

나는 항상 단기간에 폭발적인 성장이 가능하다고 생각했다. 시간과 노력만 충분히 투자한다면 한두 달 만에 이전의 나를 완전히 압도하는 실력을 가지게 될 수 있다고 믿었다. 하지만 항상 그러지 못했다. 왜 그랬는가를 생각해 보면, 나는 몇 달간 꾸준히 PS에 충분한 시간을 투자한 적이 없었다. 생각해 보니 나는 두 pla들이 말하는 지속 가능성이 정말 부족한 사람이었다.  

3년 동안 PS를 하면서, 뭔가 동기부여가 생기면 반짝 열심히 하다가, 다른 할 일이 생기면 PS를 계속하지 못하고 다른 일을 하러 갔다. 한 달 동안 PS를 한다고 하면 총 공부량 중 70%는 어떤 일주일 이내에 일어나는 것이 일반적이었다. 왜 나는 꾸준히 열심히 하지 못하는가에 대한 스트레스를 계속해서 받아왔었고, 이번 대회 이전까지 극복하지 못했었다. 내가 공부를 열심히 하고자 다짐하기 이전에 해결해야 할 문제는 무엇보다 지속가능성이었다는 것을 깨달았다.

그런데 또 생각해 보면 내가 고등학교 3학년 때 수능을 준비하면서는 딱 1년 동안 꾸준히 정말 열심히 공부했었다. 그러니까 현재의 지속가능성 문제는 내 성향상 불가능한 일이라기보다는 현재의 공부 방식과 태도에 의한 문제였을 것이다. 그렇다면 어떤 식으로 공부해야 지속가능한 공부를 할 수 있을까?

지속 가능성을 위해 낮은 목표를 잡는다는 platter의 생각이 합리적으로 보였다. 그럼에도 불구하고 나는 동실력대의 다른 사람들에 비해 절대적인 푼 문제 수가 매우 적었기 때문에, 이를 극복하기 위해서는 마냥 문제를 적게 풀 수만은 없었다. 따라서 실현 가능한 목표이면서 문제 양은 늘릴 수 있게, '골드5이상 문제 하루에 10개 이상 풀기' 라는 목표를 세웠다. 골드5 난이도 정도면 대부분 10분 이내에 풀 수 있는 난이도이기 때문에 여유가 없을 때도 지속가능한 목표였다.
 
대부분의 골드 문제를 쉽게 풀어낼 수 있는 사람이 골드 문제를 많이 푸는 것은 별 도움이 되지 않는다고 생각하는 사람들도 있겠지만, 나는 골랜디의 효용을 굉장히 높게 평가했다. 내가 대회에서 모든 골드 문제를 힘 들이지 않고 풀어낼 수 있는 것도 아니고,(SNUPC 2025에서 골드 문제를 풀지 못하여 큰 쓴맛을 보았다.) 골드 문제를 많이 풀면 플레티넘 이상 문제를 풀 때도 도움이 되는 점이 분명히 있기 때문이다.

또한 많은 문제 수를 목표로 잡은 이유 중 하나는, 하루에 푸는 절대적인 문제 수를 늘리면 이후 어려운 난이도 문제를 많이 풀 때나 대회 셋을 돌 때 하루에 10문제 이상을 풀고도 별로 힘들지 않을 수 있는 기초 체력이 길러질 것이라고 생각했다.(실제로 그랬다.) 이는 하루에 많은 문제를 푸는 밀도 있는 공부를 해 나가기 위한 필요조건이라고 생각했다.

하루에 10문제 이상 푸는 것을 일반적이라고 생각하다 보면, 나중에는 하루에 플레티넘 이상 문제를 10개씩 푸는 것도 크게 어려운 아닐지도 모른다고 생각했다. 중요한 것은 그 정도 되는 양의 문제를 푸는 것이 대단하거나 어려운 것이 아닌, 당연히 그정도는 해야 하는 것이라고 스스로 생각하게 되는 것이었다. 

인터넷예선 전까지 골드10문제 챌린지를 계속하였고, 결과적으로 대부분 성공했다. 다만 일주일에 하루 정도는 다른 일정으로 바쁠 수 있으니 치팅데이로 인정하기로 했다. 나머지 대부분의 날에는 백준에서만 10문제 이상 풀었으며, Codeforces와 Atcoder에서도 추가로 풀었다. 또한 골드10문제가 목표라고 해서 골드만 푸는 것이 아니라 그때그때 필요한 문제들을 풀었다. 플레티넘으로만 10문제를 채우기도 했다.

날짜별 푼 문제 수 결과. 테두리로 표시한 부분이 골드10문제 챌린지를 했던 기간이다. (09.16. ~ 10.10.)


9월 16일부터 10월 10일까지 25일간 총 226문제를 풀었고, 골드 102문제, 플레티넘 92문제, 다이아몬드 21문제를 풀었다.
 
시험기간과 과제가 많은 기간 등이 겹쳐 있어서 꽤 부담이 되는 구간도 많았는데, 그때도 미뤄 두지 않고 꾸준히 한 점이 굉장히 잘한 것 같다. 그런 이유로 하나씩 미루다가 결국 꾸준함이 사라진 적이 한두 번이 아니기 때문이다. 이번에는 확실히 내가 달라졌다는 것을 느낄 수 있었다. 

문제는 어떤 것을 풀었냐? 라고 한다면 solved.ac에서 태그 -tag:heuristics -tag:geometry를 키고 랜덤 문제 뽑기를 해서 그냥 풀거나 그룹 연습을 도는 것을 많이 했고, 그냥 백준 Open Contest 셋을 돌기도 했고 북마크되어있던 문제집을 하나씩 풀기도 했다.

이런 느낌의 그룹 연습도 몇 번 돌았다.


이걸 하고 나니 실제로 문제풀이 체력(?)이 많이 올랐다. 이전에는 셋 하나 돌거나 문제 10개정도 풀면 매우 피곤해서 더 이상 PS를 못 할 때가 많았는데, 이걸 한 이후로는 하루에 10문제 풀어도 그냥 그런갑다 하고 계속 풀 수 있게 되었다. 나중에(예선 이후) 5시간 팀대회 셋을 혼자서 많이 돌았는데, 이를 매일 해도 별로 힘들지 않기 위해서 필요한 선행 과정이었다고 생각한다.

또한 저점이 많이 올랐다. 대회나 Codeforces 등을 할 때 골드나 플레티넘 하위 문제를 풀지 못하거나 거기에서 심각하게 말리는 일이 종종 있어왔는데, 아무래도 200문제를 단기간에 풀다 보니 이런 것에 정말 강해져서 플레티넘 하위까지의 모든 문제를 뇌 빼고 밀 수 있는 능력을 갖추게 되었다.

이외에도 일주일에 한 번 정도 팀원들과 5시간 팀대회 연습을 많이 돌았다.
 


2. 예선 준비 과정

예선은 사실 통과하는 것이 슈퍼정배인 상황이었다. UCPC때 그렇게 잘 했다고 생각하지 않는데 예선 25등, 본선 26등을 했으므로, 아무리 못해도 이때보다는 잘 나온다는 생각이었다.
그러나 언제나 변수는 있기에 방심하지는 않으려고 노력했다. 방심하는 순간 큰 문제가 생길 수 있음을 많은 경험을 통해 알고 있었기 때문이다. 특히 3시간 1컴 대회이기 때문에 한두 문제에서 심하게 말릴 경우 망하는 일이 불가능은 아니라고 생각했다. (23, 24년 예선에서 실제로 경험하기도 했다.)

그래서 3시간 셋 도는 연습을 꽤 많이 했고, ICPC 예선 기출도 거의 다 풀었다.

2021-2024년의 다이아 하위 이하의 거의 모든 예선 기출을 이번에 다 풀었다. 이걸로 한국 ICPC에서 어떤 스타일의 문제가 나오는지 감을 익혔다.
ychangseok(팀원), swoon(팀원아님)과 2021 예선 셋으로 팀연습을 했다. 본대회 기준 3등을 해서 기분이 매우 좋았다.


예선 전날에도 TOPC 2025라는 ICPC셋으로 팀연습을 돌았고, 그렇게 잘 하지는 않았지만 예선 통과할 정도는 되었다.


3. 인터넷 예선 (2025.10.11.)

드디어 ICPC 예선을 치게 되었다. 뭔가 PS를 잘 하게 된 이후로 보는 첫 ICPC이다 보니, 나름 긴장도 되고 기대도 되었다.
예선을 여유롭게 통과할 만한 실력을 가진 팀들에게 예선은 별 거 아니라는 느낌이 강하긴 하지만, 예선은 모두가 기다리던 ICPC 2025-2026시즌의 시작을 알린다는 점에서 굉장히 설레는 일이다. 또한 예선 성적으로 다른 팀의 전력을 조금이나마 파악할 수 있기 때문에 그런 부분에서도 많은 기대가 되었다.
 
예선은 온라인으로 진행하되, 한 학교의 팀들은 모두 같은 장소에서 모여서 진행한다. 서울대 팀들은 SNUPC, 알고리즘특강(학교 강의), 작년/재작년 ICPC예선을 했던 302동 소프트웨어실습실에서 똑같이 진행했다. 대충 시작 30분 전쯤에 가서 사람들이랑 얘기를 좀 하다 보니 대회 시간이 되었다. 대회 시작 얼마 전에 leinad2와 인사하고 저는 우승할게요 님들은 2등하셈 같은 아무 의미없는 대화를 하다 보니 대회가 시작했다.

예선에는 쉬운 문제 3문제(가장 쉬운 3문제는 아닐 때도 있다.)가 한국어/영어 지문이 동시 제공되고, 나머지 문제는 영어 지문만 제공된다. 그래서 한국어로 제공되는 3문제를 가장 쉬울 것이라고 가정하고 그 3문제부터 보는 것이 일반적인 전략이다. 우리 팀도 그 전략대로 했다.
 
대회 내용은 다음과 같았다. 

  • 대회를 시작해 지문을 보니 한국어로 된 문제는 A, F, I였다. ychangseok이 A, hyperion1019가 F, 내가 I를 읽었다.
  • ychangseokhyperion1019는 각각 문제를 읽은 뒤 쉽다고 말했으며 얼마 안 가 풀이가 나와 구현하겠다고 말했다. 
  • 그런데 나는 I를 읽었는데 도저히 모르겠었다. 그래서 나만 개트롤인가 라는 생각을 했다.
  • ychangseok은 A를 바로 맞았다. (4분, 1솔, +0 AC)
  • 바로 이어서 hyperion1019가 F를 짜서 제출했으나 1번 틀렸다. I를 못풀고 정신이 나가 있던 나에게 hyperion1019가 풀이를 확인해 달라고 했다. 들어보니 leading zero와 관련된 케이스에서 뭔가 잘 안 될 것 같은 느낌이 있어서 얘기했더니, 음 그러네 님 말이 맞음 하고 AC를 받아왔다. (14분, 2솔, +1 AC)
  • 나는 각각 1문제씩 풀어서 할 거 없는 두 팀원에게 I의 도움을 요청했다. 그러나 두 명 다 문제를 들어 보더니 모르겠는데요?라고 하는 것이다. 그럼 내가 개트롤인 것은 아니니 다행이라고 생각했다. 
  • ychangseok은 한문제만 계속 보고 있는 것은 안 좋을 거 같다고 말했다. 그 말을 들은 나는 H를 읽었다. 읽어보니 축을 45도 돌리고 nlogn LIS를 풀면 되는 문제였고, n=50만일 때 시간복잡도가 O(nlogn)이었기 때문에 Python이 아닌 C++로 구현해서 한번에 맞았다. (26분, 3솔, +0 AC)
  • 내가 H를 짜는 동안 ychangseok은 J를 읽고 풀이를 냈고, H를 맞은 직후 J를 구현해서 맞았다. (32분, 4솔, +0 AC)
  • 나는 I를 hyperion1019와 같이 보던 도중 4k^2의 약수들을 하나씩 보면 답이 나오는 풀이를 냈다. 제한이 애매했기 때문에 C++로 구현했는데, 제출했더니 틀렸다. 생각해보니 내 풀이에서는 long long 범위를 초과하는 부분이 있어서 오버플로우가 생길 수 있었고, 일부 연산에서 int128을 사용해야 했다. 그런데 내 노트북 세팅에서 int128이 안되는 문제가 있어서 예제를 돌려볼 수 없었고, 제출창 디버깅(...)을 했다. 다행히 4번의 컴파일 에러(...)와 2번의 WA 이후 AC를 받을 수 있었다. (57분, 5솔, +3 AC)
  • I를 짜고 오니 hyperion1019가 자신이 생각하는 C의 풀이를 말해주었다. 들어 보니 증명은 안해도 무조건 맞을 풀이인 것 같아서 짜라고 했다. AC를 받았다. (83분, 6솔, +0 AC)
  • 스코어보드를 보니 우리팀이 7등쯤에 있었고 우리팀 위의 모든 팀이 6솔이었다. 그래서 남은 문제인 B, D, E, G는 모두 어려운 문제라고 생각했다. 
    • B는 기하 문제였고, ychangseok이 풀이가 대충 나왔다고 말했다.
    • D는 어려운 애드혹 해구성 문제였다.
    • E는 어려운 자료구조 문제였다.
    • G는 안 읽어봤는데, ychangseok이 안읽어보는 게 나은 문제라고 말했다. (실제로 난이도가 매우 높았다)
  • 일단 ychangseok에게 B를 짜라고 한 뒤 hyperion1019와 함께 E를 보았다.
  • E는 여러가지 비자명한 관찰들을 열심히 했으나 결국 풀지 못했다. 정해는 우리의 관찰들과 매우 다른 방향이라고 한다.
  • D는 내가 뭔가 생각을 잘못해서 잘못된 길로 빠지다가 결국 못 풀었다.
  • ychangseok은 B를 구현하고 제출했으나 틀렸다. 나와 hyperion1019는 B를 읽고 ychangseok의 풀이 설명을 들은 뒤 디버깅을 도왔다. 나는 몇가지 유효하다고 생각되는 수정 사항들을 생각해냈으나 모두 고쳤음에도 똑같이 틀렸다. 마지막에는 삼분탐색 범위, eps와 double<->long double 등을 수정하며 무한제출을하다가 대회가 끝이 났다. (180분, 6솔, -9 WA)
이번 예선 결과. DidYouCheckEERTREE라는 팀명으로 참가해 10등을 했다.


예선은 최종 10등으로 끝났다. UCPC 등 이전까지의 대회와 비교하면 매우 좋은 성적이라고 할 수 있다. 또한 본선에서 한국 14등까지 상을 주기 때문에 그 범위에도 들어가서 좋았다.
다만 6문제 이상 푼 팀이 33팀이고 우리는 그냥 6문제를 빨리 풀어 10등을 한 것이기 때문에, 우리가 실력이 10등정도 된다고 말할 수는 없었다. 패널티 차이는 운이나 컨디션 차이로 충분히 뒤집힐 수 있는 요소이기 때문이다.

또한 7문제를 푼 팀이 4팀이나 있었다. 이것을 보고 우리 팀이 다른 팀에 비해 아직 고점이 부족하다는 것을 많이 느꼈다. 아무런 정보도 없는 어려운 문제들만 남아있는 상태에서 한 문제를 잡아 풀어내는 것을 할 수 있어야 최상위권 등수를 얻을 수 있는데, 나는 아직 그런 능력이 부족하다고 느꼈다. 본선 전까지 많이 연습해야겠다고 생각했다.
 
반대로 6솔을 매우 빨리 했다는 것은 저점이 높다고 할 수도 있기 때문에, 그동안 연습한 것이 효과가 있었다는 뜻이기도 하다.
특히 나는 H번 LIS를 정말 빨리(3분 이내로) 짰는데, 원래 같았으면 그렇지 못했을 것이다. 그런데 예선 3일 전에 2021예선 팀연습 때 swoon이 푼 문제를 업솔빙하면서 딜워스 정리라는 것을 배웠고, 이 과정에서 LIS를 5번 정도 짜봤다. 그러면서 매우 쉬운 구현을 공부했기 때문에, 예선날도 불과 3일 전에 짜봤던, 머릿속에 그대로 남아있는 코드를 그대로 옮겨 정말 빨리 짤 수 있었다.
이때 공부하지 않았더라면 나는 LIS를 짤 줄 몰랐었기 때문에 팀원들에게 LIS어케짬? 하고 물어본 뒤 모르겠으면 그냥 세그스위핑해~를 시전당했을지도 모른다.  
 
어쨋거나 별로 큰 이득은 아니지만 이런 작은 이득이 모여 결국 한 문제를 더 풀 시간을 만들 수 있다고 생각하기 때문에, 내가 공부하는 것이 효과를 보고 있다는 것에 뿌듯했다. 올바른 방향으로 나아가고 있다는 느낌이 들었고, 본선도 잘 준비해서 잘 해보자 라고 다짐했다.
 
그리고 본선도 이미 끝나서 이후 내용도 다 써야 하는데, 귀찮아서 여기까지만 쓰고 다음에 써야겠다. 조만간 Part (2)로 찾아오겠습니다. ㅂㅂ