잡담

[ 2024년 8월 넷째 주 ] 기록과 도전, 성장의 시대

rejo 2024. 8. 25. 18:36

입대하고 나서부터 입대 전보다 하는 게 점점 더 많아지는 것 같다. 성장하고 있는 중!

매주마다 그 주에 있었던 일들을 회고 느낌으로 작성해보고자 한다. 사실 이전부터 쓰려고 시도했다가 계속 실패했던건데, 입대한 지금은 뭔가 다르겠지라는 느낌으로 다시 도전해본다.

1. Solved.ac 등반

입대하기 전만 해도 2230 대에 머물러있었던 레이팅이 2340 대에 안착했다.

 

올해 4월부터는 입대에 대한 준비 및 걱정이 가득한 마음에 '이제 백준 많이 못 하겠구나..' 라고 생각하며 문제 풀이보다는 놀기만 했었다. 군 부대 안에서 자율적으로 공부할 수 있다고 듣긴 했지만 모든 부대가 동일한 분위기인 것은 아님을 알고 있었기에 군 복무 중의 공부는 거의 포기 상태로 계획하고 있었다. 그렇기에 새로운 알고리즘을 공부해야겠다는 생각은 하지 않은 채로, 내 레이팅은 작년 6월부터 쭉 변함없이 다이아몬드 5에 머물러 있었다. 널린 브론즈 - 실버 - 골드 문제들만 풀던 나는 결국 5월에 입대했다.

 

그런데, 훈련소에 있던 기간동안에 백준 문제 풀이와 알고리즘 공부가 너무 그리웠다. 주말마다 1시간씩 핸드폰을 받을 수 있던 상황에서 동기들 전부 통화를 하고 있을 때, 나는 백준 문제를 핸드폰으로 재빨리 하나 풀면서 예전 감을 잃진 않았는지 걱정하곤 했었다. 이전부터는 쭉 공부를 하고 있었는데 입대 후에 손을 놓았다 보니, 이전과는 달리 더 다양한 것들을 배우고 싶다는 의지가 넘쳐 흘렀다. 

 

 

자대 배치를 받고 나서 적응기로 몇 주를 보낸 뒤에, 부대 안의 사이버 지식 정보방을 정해진 시간에 자유롭게 이용할 수 있다는 것을 알게 되었다. 자유롭게 공부할 수 있음을 알게 된 이후로 나는 약 2달동안 사이버 지식 정보방을 자주 이용하면서 다양한 백준 문제를 풀이해왔다. 마치 훈련소 기간동안 못 다한 공부를 하는 것 마냥, 이전에는 이해되지 않던 알고리즘들이 갑자기 이해가 잘 되고, 고난이도 알고리즘을 이해한 뒤 상위 난이도 문제들을 많이 풀게 되고, 더 많은 알고리즘을 배우고 싶다는 의지가 계속 샘솟았다. 2달간 KMP, SCC, 2-SAT, 이분 매칭, 네트워크 플로우, MCMF, Sparse Table + LCA, 제곱근 분할법, mo's 알고리즘을 배웠는데, 전부 다 난이도가 있는 알고리즘이라 해당 분류의 문제들을 풀면서 결과적으로 레이팅이 급격하게 상승했다. 

 

( 여담으로, MCMF 로 다이아몬드 5 문제를 처음 풀었던 날은, 내가 다이아몬드 문제를 마지막으로 푼 지 정확히 1년이 된 날이었다. )

 

이전에 플래티넘 5에서 다이아몬드 5로 등반할 때의 보람찬 느낌을 다시 받는 것 같았다. 배운 알고리즘을 응용해서 난이도 있는 문제를 풀 수 있다는 자신감도 얻고, 더 다양하고 어려운 알고리즘을 배울 수 있다는 용기도 얻게 되고, 무엇보다 레이팅이 올라간다는 것이 기분이 좋았다. 아마 계획 상이라면 11월에 다이아몬드 3에 승급할 것 같다.

 

이전에 느꼈던 바를 잊지 않고, 실버 - 골드 수준의 문제들도 거의 매일 풀이하면서 다양한 문제들을 풀 수 있도록 노력하고 있다. AtCoder 나 Codeforces 문제들도 여유있을 때마다 풀이해 CP 또한 지속적으로 대비하고 있다. 콘테스트는 참여할 수 없지만 폐관 수련으로 실력을 늘려가겠다는 계획이다.

 

2. Today I Learned

 

군대에서 다양한 것을 배우기 위해선 준비가 필요했다. 바로 배운 내용을 잊어버리지 않고 잘 정리할 곳이다. Today I Learned (TIL) 를 깃허브에 레파지토리를 생성하여 특정 내용을 공부할 때마다, 백준 문제를 풀이할 때마다 계속해서 실시간으로 정리하고 있다. TIL 도 입대 전에는 귀찮아서 잘 안 쓰게 되느라 계속 실패했던 습관인데, 7월 7일부터 작성해온 TIL이 벌써 8월 25일까지 이어지고 있음을 깨달았을 때는 내가 열심히 공부했구나를 알 수 있어서 보람을 느꼈다.

 

날짜마다 배운 내용을 정리하면서, 예전 내용부터 복습 겸 티스토리 블로그에 다시 정리하고 있다. TIL 도 채우고, 블로그도 채우고, 깃허브 커밋 스트릭도 채우고, 배운 내용에 대한 복습도 할 수 있으니 블로그에 정리한 내용에 있어선 기억이 잘 될 정도로 효과가 매우 좋았다. 아무래도 평일에는 적은 시간 안에 공부하느라 바쁘니, 시간이 많이 남는 주말에 블로그 정리를 진행하고 있다.

 

TIL 을 길게 써보면서 느낀 점은, 하기 싫고 귀찮다는 생각이 습관을 만드는 데에 있어서 주된 방해 요소가 되는데, 이를 다 잊고 그냥 묵묵히 쭉 하는 것이 습관을 만드는 가장 좋은 방법임을 느꼈다. 다른 잡생각을 떠올리는 것 대신 묵묵히 지난날의 기록을 이어간다면, 나중의 내가 지난날의 기록에서 동기부여를 얻고 계속해서 유지할 수 있는 힘이 될 수 있다!

 

https://github.com/r3j0/TIL

 

GitHub - r3j0/TIL: Today I Learned

Today I Learned. Contribute to r3j0/TIL development by creating an account on GitHub.

github.com

 

백준 문제 풀이 / 알고리즘 외에도 지금은 프로그래밍 언어에 대한 TIL 도 작성하고 있다. 여유가 된다면 더 다양한 분야에 대해 공부하고 TIL 을 작성해 공부 기록을 쌓아갈 것이다!

 

3. 여담

  • TOPCIT 공부를 시작했다! 한 달동안 빡세게 준비해야 하는 시험이지만, 열심히 해서 상을 타보겠다는 목적이다! 다른 일들은 우선순위가 조금 밀리겠지만, 나중에 취업 때 어떻게 대비해야할지도 지금 알아볼 수 있기에 좋은 경험이 될 거라고 생각한다.
  • 공부도 좋지만 운동도 열심히 해야할 것 같다. 진급 시험엔 체력이 필요하기 때문이다.
  • 같은 학교 인원끼리 진행하는 백준 스터디를 열어서 운영하기 시작했다! 아직은 소규모이지만 활동을 늘리고 인원을 모집해서 백준 문제 풀이를 같이 진행하는 커뮤니티로 활성화하여 우리 학교에서 백준을 즐겨 하는 인원이 많아졌으면 하는 목적이다.
  • 조만간 블로그도 키울 예정이다! 백준뿐만 아니라 다양한 분야의 글을 올릴 예정이다.