티스토리 뷰

 

안녕하세요? 이 글은 제가 알고리즘에 푹 빠졌던 시기에 작성한 글이에요. 2년 만에 이 글을 발견해서 읽었는데, 정말 부족한 글이네요. 수정하려 했지만 부족한 모습도 저였기에 그대로 두기로 했어요. 읽으며 불편하시겠지만, 귀엽게 봐주시면 감사하겠습니다! 

- 2024.07.21

 

 

이야기를 시작하며

지난 2년간 PS에 모든 시간과 노력을 쏟았던 만큼 언젠가 활동한 내용을 정리하고 싶었어요. 문제 푸는 게 좋아서 시작한 게, 하루하루 쌓이다 보니 긴 시간을 PS 빠져있었네요.

 

그동안 참 많은 활동을 했어요. 백준, 코드포스, 온라인 대회와 UCPC, ICPC 같은 오프라인 대회에 참가하고, 동아리도 만들고, 교내 경시 대회에서 수상하고, PS를 사랑하는 사람들도 많이 만나고, 그간의 활동을 인정받아서 알고리즘 랩실에서 학부 연구생을 하고 있고, 뒤돌아보니 참 열심히 살았네요.

 

PS는 Problem Solving의 약자로 알고리즘 문제해결이 적절한 이름일 것 같아요. Problem Solving이라는 표현은 의미가 넓다고 생각해서 알고리즘을 붙여서 말하는 걸 좋아해요. 저는 PS에서 3juhwan이라는 이름으로 활동해요

 

 

군대에서 백준에 빠졌어요

PS를 처음 시작한 건 2021년 3월경이에요. 군 생활을 하던 중에 시작했어요. 군대에서 코딩을 계속하고 싶었고, 18개월의 군 생활을 후회 없이 보내고 싶었어요. 당시를 회상해 보면 18개월 동안 남들보다 뒤처질 거란 생각에 많이 불안했던 것 같아요.

 

이병 때부터 선임 눈치 보면서 사지방 가서 코딩했어요. 구름 IDE를 사용해서 개발 공부하려고 노력했던 적도 있지만 한계를 느끼고 어떤 걸 해야 할지 많은 고민을 했어요. 그리고 백준을 풀기로 결정했어요. 백준은 성과가 수치로 나타나서 성취감을 느낄 수 있기에 지속적으로 동기부여가 될 것 같았어요.

 

21년-22년 Solved.ac 레이팅 점수

 

백준에서 푼 문제가 100문제, 200문제 늘어갈수록 PS에 더 깊이 빠져들었고, 마침내 solved.ac에서 플래티넘을 달성했습니다. 이제는 다이아몬드에 도전하면서 학교 랭킹도 높이고 싶었어요. 

 

 

코드포스를 만났어요

Codeforces(이하 코드포스)를 알고 난 후 제 군생활은 완전히 뒤바뀌게 돼요. 코드포스는 경쟁적 프로그래밍 대회를 개최하는 사이트로 제한된 시간 안에 문제 해결 능력을 겨루는 사이트에요.

 

백준에 예쁜 색깔의 닉네임을 보고 탐이 났어요. 그리고 백준은 여러 대회 사이트와 연동하여 닉네임 색을 적용한다는 것을 알게 됐어요. 저도 예쁜 색의 닉네임을 하고 싶었고, 이렇게 코드포스를 시작했어요.

 

예쁜 색깔의 닉네임들

 

 

정말 코드포스에 참가하고 싶었는데, 코드포스의 유일한 단점은 주로 오후 11시 35분에 시작한다는 것이에요. 군대에서는 이 시간에 도저히 할 수 없습니다. 밤 10시에 취침하는 군대에서는 공부 연등을 한다고 해도 자정까지밖에 할 수 없어요. 대회는 오전 1시 35분에 끝나는데, 현실적으로 참여할 수 없었어요.

 

코드포스를 알고 나서 정말 치열하게 살았어요. 종종 저녁 시간에 대회가 열리곤 했는데, 이 기회를 놓치지 않았어요. TV 연등 대신 간부와 합의해서 공부 연등을 연장하기도 했어요. 이 과정에서 소대장님의 도움을 많이 받았어요. 군생활 내내 사지방에 앉아서 공부하는 모습을 대견하게 생각해주셔서 잘 챙겨주셨어요. 감사합니다.

 

코드포스 점수 변동 기록

 

 

위 그래프에서 볼 수 있듯이, 민트 레벨은 금방 달성했어요. 제 실력이 그 정도였던 것 같아요. 하지만, 제 목표는 블루였어요. 블루가 예쁘기도 했고, 한 유명 개발자가 '코포 블루는 평소 실력으로 대기업 코딩 테스트를 무난하게 통과하는 수준'이라고 말한 것을 보고, 이 말을 증명해 보고 싶었어요.

 

민트에서 블루로 올라가기 위해 피나는 노력을 했어요. 기출(버추얼)을 정말 많이 풀어보고, 오답노트(업솔빙)을 작성했어요. 또한, 질 좋은 문제를 해결해야 한다고 생각해서 미국 올림피아드(USACO) 문제를 꾸준히 풀었어요. 군대에 있을 때, 열리는 모든 코드포스에 참가하기 위해 최대한 노력했고, 새벽까지 깨어있던 날이 꽤 많았어요.

 

그렇게 가까스로 코드포스 블루에 달성하고, 정말 코딩테스트를 통과할 수 있을지 테스트해봤어요. 이 과정에서 무수히 많은 기업의 코딩테스트를 봤어요. 그리고 결과는 성공적이었어요. 스타트업부터 대기업까지 많은 코딩테스트를 봤고 모든 문제를 항상 다 풀었어요. 유명 개발자의 말을 제가 증명한 셈이라 신났어요.

 

 

22년 ICPC 팀에 합류했어요

ICPC 팀 결성의 현장

 

 

여기부터 특별하고 값진 경험의 시작이에요. 2021년 12월 정도에 ICPC 대회를 알게 됐어요. ICPC는 대학생의 알고리즘 올림피아드에 준하는 대회로 세계 대회에 참가할 팀을 뽑는 대회에요. 저는 ICPC에 참가하고 싶었어요. 우리 학교에 참가했던 사례가 있는지 찾아봤고 21년에 1팀 있었어요. 1팀밖에 참가하지 않았다는 사실에 학교에 조금 실망했어요. 아무튼, 학교 커뮤니티에 작년 참가팀을 수소문했고 팀원 한 분과 연락할 수 있었어요. 그리고 이분과 함께 22년 ICPC 팀을 만들었어요.

 

이날은 PS를 하면서 다른 사람과 처음으로 소통한 날이에요. 아직 군대에 있어서 제한된 사항이 많았는데, 많은 배려를 받으며 꾸준히 소통했어요. 12월에 처음 연락했고 22년 ICPC를 함께하기로 막연하게 기약했어요. 22년 2월 다시 연락이 왔고, 함께 ICPC를 참가할 팀원을 구한다고 하셔서 바로 팀에 참가했어요. ICPC는 3인 1팀이라 팀원이 한 명 더 필요해서 교내 커뮤니티에 글을 올렸고, 다른 한 명도 금방 구했어요. 이렇게 ICPC 팀이 꾸려졌고, 6월에 있는 UCPC 예선과 10월에 있는 ICPC 예선에 모두 참가하기로 했어요.

 

 

드디어 전역했어요. 🎉🎉

22년 5월, 드디어 집에 왔어요. 조기 전역으로 좀 빨리 집으로 돌아왔어요. 전역 전까지의 목표가 백준 다이아 달성, 코드포스 블루 달성이었어요. 집가서 몇 번 하니까 코드포스 블루는 금방 갔고, 백준 다이아도 금방 달성했어요. 이렇게 찐전역 전까지 모든 목표를 달성했답니다.

 

말출!

 

 

첫 오프라인 대회, UCPC에 참가했어요

전역 후, 1달 뒤 2022 UCPC에 참가했어요. UCPC는 ICPC의 모의고사 격의 대회로 전국 대학생 프로그래밍 연합회에서 주관하는 대회에요. PS의 모든 고인물이 모여서 출제하고 참가하는 축제라고 생각하면 쉬워요.

 

예선은 온라인이었는데 최선을 다했고 운 좋게 본선에 참가하게 됐어요. 처음 오프라인 대회에 참가해서 많이 긴장하기도 했지만, 정말 즐거웠어요. PS를 사랑하는 사람들과 함께했고, 공부할 때 도움이 많이 됐던 고인물을 모두 볼 수 있었어요. 진짜 이런 경험 어디서 할 수 있을까요?

 

2022 UCPC 현장

 

 

그리고 상도 받았어요!! 첫 대회였는데,, 상도 주시고,, 큰 동기부여를 받았어요!

 

UCPC 특별상 수상

 

교내 알고리즘 동아리를 만들었어요. 하지만..

전역 후, 7월 경에 교내 알고리즘 동아리를 만들었어요. 동아리 이름은 SAL(Sejong Algorithm Lab)으로 지었어요.

 

저는 PS를 사랑했어요. PS를 하면서 여러 방면에서 참 많이 성장했어요. 그 경험을 나누고 싶었어요. 교내에 알고리즘 관련 활동이 전혀 없던 것이 안타까웠어요. 그래서 만들었죠. 신입생을 모집하고, 강의 자료를 준비하고, 학교 강의실을 빌리고, 과제를 내서 채점하고, 질문을 받아주고. 이런 활동을 했었는데, 마지막엔 결국 혼자 남았어요.

 

뭐가 잘못 됐을까요? 지금 생각해 보면 저는 많이 부족했어요. 알고리즘을 잘하고 사랑한다는 마음 하나로 동아리를 기획하고 운영하는 데에는 한계가 있었어요. 동아리가 어떻게 굴러가는지 몰랐고, 운영진이 단둘이었고, 강의식 학습을 했고, 신입생들의 속도를 고려하지 않았고, 동아리 구성원이 함께 소통할 자리를 만들지 않았어요.

 

그래도 여름 방학에 계획한 활동은 마쳤고, 이후 여러 스터디를 진행했어요. 각자의 사정으로 중간에 끊겼지만, 이 경험에서 이후 스터디를 어떻게 운영해야 하는지 배웠어요.

 

 

ICPC까지 잘 마무리했어요.

그리고 시간이 흘러서 11월이 됐어요. 저희 팀은 10월에 있던 ICPC 예선을 통과하고 본선에 진출했어요.

 

대회는 토요일이었는데, 장소가 집과 거리가 있어서 전날 일산으로 이동해서 잤어요. 전국 대회라 그런지 금요일 수업은 공결 처리를 받을 수 있었어요. 대회 아침에 팀원과 함께 대회장으로 가는 길을 생각하면 아직도 설레요. 이때, 찍은 영상을 보면 참 풋풋했네요. 저희는 대회장에 무사히 도착해서 티셔츠와 명찰, 각종 기념품을 나눠 받았어요.

 

2022 ICPC 풍선 5개와 함께

 

대회는 시작됐고 5시간 동안 진행됐어요. 위 사진에서 알 수 있듯이 저희는 5개 문제를 풀고 42위를 기록했어요. 마지막 문제를 푸는 과정이 기억에 남아요. 이 문제를 풀고 저희 순위는 20등 이상 상승했어요. 그래프 문제였는데, 저와 진우형이 붙잡고 정말 많이 고민했어요. 제가 간선과 노드를 바꿔서 풀면 쉽다는 발상을 했고, 진우형이 코드로 구현했어요. 그리고 정환이가 반례를 찾았어요. 이게 진정한 팀워크지 않을까요? 함께 치열하게 고민하고 문제를 풀어낼 때, 그만큼 짜릿할 때가 없어요.

 

 

현재는 PS를 쉬고 있답니다

그리고 지금은 PS를 쉬고 있답니다. 지금도 알고리즘 문제를 꾸준히 풀고 있지만, 전처럼 활발하게 활동하고 있진 않아요.

 

제 인생은 PS를 시작하기 전과 후로 나눌 수 있을 것 같아요. PS를 하기 전에 저는 비전공자였고 코딩에 막 입문한 상태였어요. 군대에서 PS를 시작했고 전역할 때까지 하루에 적어도 4시간 이상은 코드를 쳤어요. 전역 후에도 ICPC를 준비했고 총 2년의 시간을 PS에 쏟았죠.

 

이 과정에서 제 사고력과 논리는 정말 많이 발전했어요. PS를 하기 전을 생각해보면 정말 아무렇게 생각했던 것 같아요. 말이 애매하긴 한데, 공부 뿐만 아니라 인생에서 어떤 문제를 직면했을 때에 해결하는 과정에서 논리적으로 판단한 적이 없던 것 같아요. 지금은 어떤 문제를 마주하면 해결하기 위한 단계가 그려지고 그 사이에 논리에서 헛점은 없는지 판단하게 돼요.

 

무엇보다 꾸준함을 배웠어요. 제가 생각해도 정말 지독하게 공부했어요. 몸이 힘들 때, 마음이 힘들 때도, 코딩하면 마음이 정말 편안해졌어요. 다시 이때처럼 하라고 해도 못할 것 같지만,,, 사실 다시 해도 할 수 있을 것 같아요! PS는 정말 즐겁거든요. 아무튼,, 되돌아 보면 참 열심히 살았었네요. 여유가 생긴다면 다시 한번 PS에 인생을 걸어보고 싶어요.

 

 

'몰입 - PS' 카테고리의 다른 글

2024 카카오 겨울 인턴십 코딩테스트 후기  (0) 2024.08.15
백준 23285 코멘트  (1) 2024.06.16
SCPC 2022 후기  (0) 2022.08.13
UCPC 2022 본선 후기  (0) 2022.07.29
UCPC 2022 예선 후기  (0) 2022.07.05
링크
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday