PS 기록

23년 1학기 PS 회고록

pearl.k 2023. 6. 29. 23:28

여름이니까 시원한 컨셉

 

종강 기념으로 23년 1학기 (학기 병행) PS 회고록을 쓴다.

23.02.28 기준 165 문제를 solved, 현재 23.06.29 기준 347 문제를 해결했다 한 학기 (3월-6월) 동안 347-165=182 문제를 풀었다!

다행이도 개강 전에 세웠던 소소한 목표는 모두 달성했다.

1. 종강 전에 G2 달성 -- completed!

2. 스트릭 Day 100+ 달성, 유지 -- completed!

 

솔직하게 말해서, 1학기를 돌아보니 아쉬운 점이 너무 많다. 학교 생활에서 아쉬운 점도 물론 있지만, PS 중심으로 내 성취를 다시 돌아보았을 때 너무 많이 아쉬운 게 있어서 이를 차근차근 정리해보려고 한다.

 


 

아쉬운 점

 

1. 새로운 알고리즘을 많이 소화하지 못한 것

 - 알고리즘 수업에서 Backtracking (N-Queen, B&B), 정수론 일부(암호화를 중심으로)를 배운 것을 제외하면 새롭게 소화한 알고리즘이 없다. 심지어 이것도 학교 수업에서 시험 / 과제를 위해 공부한 것이다. 자기주도적으로 찾아서 공부하지 못한 게 두고두고 아쉽다. 학점 챙기느라 시간이 없다는 변명을 하기엔.. 의지만 강했다면 충분히 할 수 있었을 것이란걸 스스로 잘 알기 때문에 변명의 여지가 없다. 게다가 배우고 싶은 주제도 아직도 너무 많고, 알지 못하는 것도 많은데.. 내게 주어진 시간은 점점 줄어드는데 시간의 소중함을 잊어버렸다. 방학 때는 꼭 보완하고 싶다.

 

2. 코드포스 contest 참가를 많이 못한 것

 - 학기 병행이고, 편도 1시간 30분 극악의 등교 환경이다보니 밤 늦게 열리는 코포 contest에 참여하기 힘들었다.  2번 정도? 치고 수면 시간 부족 + 체력 문제로 거의 손을 놓아버렸다. (주말 껴있을 때만 한 것 같다.) 이러다보니 PS 감이 더 떨어져서 랜디를 하거나 태그 가리고 풀 때 점점 자신이 없어지는 내 모습을 발견했다....  자괴감 mex (거의 I'm a mex mex mex 수준, 드립 참고는 여기서... https://www.acmicpc.net/problem/28250) 지금 코포 치라고 하면 솔직히 레이팅 나락 갈 것 같다.. (나락도락이다..! << 아님)

 

3. 스트릭 유지를 명분으로 쉬운 문제를 푼 날이 꽤 있는 것

- 시험 기간에 특히 심했다... 시험기간은 봐주라 ㅠㅠ흑흑

- 시험 기간 아닌데 B5 문제 푼건.... 변명의 여지가 없다. 그냥 몸과 머리가 편하고 싶다고 나에게 강력 호소를 하는 바람에 유혹에 넘어가서 편한 걸 택하고 말았다.. 앞으로는 진짜 정신차리고 예쁜 도넛 distribution을 위해 노력하자.

솔직히 여기서 더이상 똥색이 늘어나면 답이 없다.

 

4. 복습을 성실하게 못한 것, 코드 리뷰를 게을리 한 것

- 내게는 코드 리뷰용 노트가 따로 있는데 (아이패드 노트) 안 열어본지 최소 두 달은 지났다. 솔직히 당시에는 학교 생활하면서 PS 까지 매일 챙기면 복습 시간은 사치!!!라고 생각했는데, 지나고 보니 복습을 안해서 생기는 스노우볼이 꽤  크게 느껴진다. 

- 스노우볼 1. 알고리즘 원리, 아이디어는 알고 있지만 정확한 구현을 하는데 시간이 꽤 많이 소요되거나, First try에 바로 AC를 받을 수 있는 클린 코드를 작성하기 어려워진 것. 아주 간단한 기본 난이도 S1-S2 정도의 그래프 문제에서 짧은 시간안에 뚝딱 구현할 수 있어야 하는데 복습을 안하다 보니 코드를 구현할 때 시간이 꽤 걸림 + 디버깅 시간도 꽤 필요한 상태가 되어버렸다.

- 스노우볼 2. 예전에 풀었던 문제가 기억이 안남. 중요한 문제는 모아서 다시 풀어봐야겠다.

 


그래도 스스로 칭찬도 해줘야겠지..? 하는 마음에 칭찬할 내용도 생각해본다.

 

칭찬할 점

1. 학기를 병행하며 스트릭을 잘 유지(시험 기간에도!!)

- 비록 B5 문제를 풀어서 제출한 날도 있었지만.. 그래도 학교 생활과 시험 기간 중에도 계속 PS를 생각하고 있었다는 점이 긍정적이다. 이제 보니 스트릭이 내 끈기의 지표, 열정을 보여주는 것 같아서 나름 뿌듯하다. 처음에는 365일 스트릭 유지가 어려울 것 같다고 생각했지만, 이제 절반 정도 채운 걸 보니 기대해도 될 것 같다.

- 12월의 나는 100일 스트릭 유지라는 목표를 이룰 것이라고 굳게 믿고 있었고, 스스로 보답할 줄 아는 사람이 되었다. 이제는 다음 단계가 나를 기다리고 있다. 365일이라는 숫자는 꽤 커서, 과연 할 수 있을까? 의심할 수도 있다. 그러나 벌써 반을 지나왔고 지금까지 했던 것처럼 한 번 더. 이번에도 나에 대한 믿음이 굳게 선 것을 보니 할 수 있을 것 같다.

 

2. PS가 개발에도 도움이 되는 것을 경험을 통해 몸소 깨달았다.

- 지난 학기에 꽤 힘들었던 개발 프로젝트가 있었다. JDBC를 이용하여 Java-MySQL 을 사용한 프로그램을 제작하는 프로젝트였다. 사용자 친화적인 프로그램, 인터페이스를 제작해야 했다. 프로그램 제작에 주어진 기간은 약 1달, 보고서나 다른 필수 요구사항을 체크하다 보니 실질적으로 개발(코드 작성)할 수 있는 기간은 20일 남짓이었다. 이 짧은 시간 동안 나는 모든 베이스를 구축하고 기본 기능을 제작했다. 빨리 구현할 수 있다는 자신감이 있었고, 다른 팀원들이 시험 때문에 바쁠 때 기본 프로그램 틀을 짜줘야겠다는 생각이 들어서 조금 무리하면서 개발을 진행했다. 3일 밤낮을 새며 구글링과 gpt의 도움도 받았지만, 에러를 찾고 디버깅하는 과정, 사용자의 모든 입력 경우를 따지고 엣지 케이스까지 생각하는 과정에서 PS를 열심히 한 경험이 큰 도움이 되었다.

- 특히, 협업 과정에서 서로 코드를 합치다보니 발생하는 예기치 못한 문제들이 있었다. 예를 들면 각자 구현한 기능이 코드를 합치면서 충돌해서 제대로 작동이 안되는 문제, 코드 파일의 일관성이 깨져서 생기는 기상천외한 오류와 빨간 메세지들... (상상도 하기 싫다..!!) 4명의 팀원 중에서 내가 디버깅도 빨랐고, 오류 원인을 유추하는 것도 빨랐다. 몇백~몇천 줄의 긴 코드를 살피고 디버깅하는 시간이 사람마다 이렇게 차이날 줄 몰랐다. 다른 팀원이 하는 것보다 내가 하는게 효율적이었다. 그걸 깨닫고 나서 전체적으로 코드를 검토하는 포지션이 되었다. 나는 남들이 부러워 할 만한 대단한 개발 경험이 있는 것도 아니고 그냥 Java Spring을 끄적여본 정도의 평범한 학생이었는데 다른 학생보다 코드를 보는 눈이 늘었고, 디버깅 능력이 늘었고, 엣지 케이스를 고려하는 능력도 생겼다. 이 모든 것이 PS를 통해 얻은 것이라고 설명할 수밖에 없다. (심지어 나는 컴공이 주전공이 아니니까..)

 


결론은 우리 학교 학생들이 PS를 더 많이, 열심히 했으면 좋겠다. 다 뼈가 되고 살이 되는 중요한 경험이라고 생각한다.  단순히 코딩 테스트를 넘기 위해서 알고리즘을 하는게 아니라, 진지하게 공부하고 고민하면서 사고가 열리는 느낌을 더 많은 벗들이 느꼈으면 좋겠다. 이런 PS의 과정 하나하나가 굉장히 의미있고, PS를 통해 채워지는 지적 충족감은 다음 단계를 향한 열정, 욕심, 내재적 동기를 자극하기 때문이다.

회고록을 빨리 쓰고 업로드하고 싶었는데 쓰다 보니 적고 싶은 말이 많아졌다. 이 글 다음에도 바로 또 쓰고 싶은 주제가 생겼다. 위 결론과 이어지는 맥락의 글이다. 조만간 빨리 작성해서 올릴 예정.

 

'PS 기록' 카테고리의 다른 글

700솔 기념  (0) 2024.02.11
2023 여름방학 PS 회고록  (2) 2023.08.31
겨울 방학 사이의 꾸준함을 기록하다  (2) 2023.02.28
한 달 동안 백준 골드 달기  (0) 2023.02.13