
백준 서비스가 종료된다는 소식을 들었습니다. 종료됐습니다.
3년 8개월동안 하루도 빠짐없이 이용해온 사람으로써 아쉽다는 생각이 참 많이 듭니다. 하지만 섭종한다고 제가 뭐 할수 있는게 있겠습니까? 보낼 서비스는 보내주고, 그동안 문제를 풀어오면서 느낀 점을 정리해보려고 합니다.
저는 백준에서 chanhong1206이라는 이름으로 ps를 해온 유찬홍입니다. 2022년 7월부터 1345일(약 3년 8개월) 동안 스트릭 프리즈 없이 문제를 풀어온 백준 중독자이고, 인천 송도의 작은 스타트업에서 소프트웨어 개발자로 일하고 있습니다.

어떤 단어가 제일 적합할지 모르겠네요.. 충격? 자극? 동경? 왜 그런거 있잖아요 멋있는 사람을 보면 나도 그렇게 되고 싶다는 느낌.
저는 소프트웨어 마이스터고등학교를 졸업했고, 고등학교에서 처음으로 C언어같은 코드를 짜면서 프로그래밍을 배우기 시작했습니다. 1학년이였던 저는 한창 조건문 반복문 배우고 별찍기 하고 재귀함수에 머리가 터질 때쯤, 전교생 모두가 참여하는 알고리즘 경진 대회에 참여하게 되었습니다.
솔직히 그때 실력으로 문제 다시 풀라고 하면 절~~대 못풀었을 거라고 생각해요. 이제 막 if문 while문 for문에 익숙해질때쯤이였는데 dp 그리디 이런거 나와버리면 벙찌죠 아무래도.. 그냥 벽 느끼고 과자나 먹으면서 포기했는데, 스코어보드에서 한 1학년 친구가 치고 올라가는 모습을 보고 꽤나 충격을 받았었습니다. 총 7문제를 가지고 하루동안 풀어야 했었는데, 그 친구는 6문제나 풀었던걸로 기억해요.
대회가 끝나고 어떻게 하면 그렇게 잘 할수 있냐고 질문했더니 백준 풀면 된다는 답변을 받았습니다. 학교 다니면서 남는게 시간이였을 때라 하루에 하나정돈 괜찮을거라는 생각으로 시작했던 걸로 기억해요.
과거에 비하면 많이 오른것도 맞고, 아예 안푸는 것보단 푸는게 안까먹고 좋긴 하지만.. 개인적으로는 아직도 부족하다고 느끼고 있습니다.
사람이 "이정도 했으면 어디까지는 충분히 할 수 있겠지-" 같은 기대치라는게 있기 마련인데, 저는 아직 그 기대치에 못 미친다고 생각해요. ps를 3년 넘게 해왔지만 사실 어느새부터는 발전의 속도감을 잘 느끼지 못했거든요. 오히려 특정 유형에서는 문제를 푸는 감각이 사라졌다는 느낌을 받을 때도 있었어요. 특히 dp. 고등학교 3학년 때 취업이 확정났을 시기에 남는 시간동안 백준 문제를 엄청 풀었던 때가 있었는데, 저는 이때가 가장 퍼포먼스가 좋았던 때로 기억하고 있어요. 풀어봐야겠다고 생각한 문제마다 각이 보이고, 나름대로 계획을 세워서 코드를 짜면 대부분 풀렸었거든요. 막상 지금 그때 문제를 다시 풀라고 하면 못 풀것 같은 느낌이 듭니다.
그런데 이 감각이라는 것도 감각이 느껴지는 이유있는 근거가 뒷받침되었을때 비로소 의미가 있습니다. 그게 아니면 그냥 운이거든요.. 우연히 점화식이 떠올랐다거나, 우연히 특정한 방법이 떠올랐는데 그게 정말 정해라던가. 물론~ 이런 풀이법을 생각한다는게 100% 운은 아닐겁니다. 그동안 풀어온 경험이 있으니 비슷한 유형의 문제를 만나면 비슷한 풀이법이 자연스럽게 떠오를 테니까요.
하지만 아예 새로운 유형을 만나면 분명 막힐 것이고, 이럴 때일수록 문제를 증명하듯이 풀어야 합니다. 어떤 명제가 참일거라는 상황을 가정하고, 증명하고, 그 명제를 이용해서 더 큰 명제를 증명해나가는 선순환을 이룰 수 있을 때 비로소 문제 유형을 막론하고 접근할 수 있게 되거든요. 단순히 될 것 같은데..? 에서 끝나지 않고 왜 이 풀이방법이 가능한지, 왜 이런 접근은 불가능한지를 빠르게 캐치해서 풀이 시간을 줄이는게 실력이 좋은거라고 생각해요.
저도 제가 증명하듯이 푸는게 잘 안된다는걸 알고 있다보니, 아직은 실력이 한참 미달이라고 말할 수 있을 것 같습니다.
음.. 문제에 벽을 느낀건 너무 많아서 사실 잘 기억이 안나고, 대신 벽을 느꼈던 사람은 기억이 나요.
좋은 기회로 취직에 성공했을 때 옆자리에 물리학 석사 출신 개발자분이 계셔서 이것저것 많이 질문했었던 기억이 있는데, 이때 상당한 충격을 받았었습니다. 직접적으로 알고리즘은 배운적이 없으신데, 대학교 다니면서 배우셨던 깡 수학으로 제가 회사에서 짬짬이 풀었던 문제들을 거의 다 간파하시더라구요..
한번은 학교다닐 때 감으로 풀었던 Ezreal 여눈부터 가네 ㅈㅈ 문제와 제 풀이를 들고 가서 왜 이게 맞는지 모르겠다고 질문드리니, 정수론에 나오는 3과 5의 성질을 가지고 차근차근 접근하면서 최종적으로는 이래서 풀린다- 는 결론을 내시는 것을 보고 엄청 놀랐습니다. 심지어는 제 코드를 보고 점화식을 조금 더 간단하게 표현할 수 있을 것 같다는 말을 듣고서는 진짜 벽을 느꼈던 기억이 있어요.
알고리즘이 다 수학이라는거 말로만 얼추 이해하고 있었다가 이렇게 벽을 느끼다 보니 수학의 중요성을 느끼게 된 것 같습니다.
취미이자 습관이 됐을 시점부터는 사실 못해먹겠어서 포기하고 싶었던 때는 없었던걸로 기억해요. 백준에 워낙 문제가 많다보니 😅
대신 재미가 없어서, 일상에 방해가 되어서 이 두가지 때문에 그만두는것을 고민한적은 있습니다.
진짜 말 그대로 백준이 재미가 없을때가 자주 있었습니다. ps말고 아예 다른 쪽에 관심이 생겼을 때 문제를 푸는 시간이 방해가 된다고 느낀 적이 참 많았어요. oop fp 등 프로그래밍 패러다임을 공부할 때, 캐논 락 보고 삘받아서 일렉기타 연습을 할 때, 가끔씩 친구들이랑 증강 칼바람을 돌리러 갈 때 등등 그냥 풀지 말까- 싶은 순간들이 종종 있었습니다.
솔직히 학교다닐때는 가끔씩 수업 안듣고 문제 생각하느라 제 시간을 날리는것쯤은 오케이 인정인데 회사에서는 그렇게는 못하겠더라고요. 제 시간을 돈주고 팔아먹고 있다보니 업무 시간되면 바로 업무에 집중하려고 하고 있고, 애초에 일하는데 집중하면 생각도 안납니다..
이렇게 집중해서 일하고 퇴근하고 집에 와서 씻고 정신차리면 하루가 훌쩍 지나가있고, 그러다보니 유일하게 가능한 시간이 회사 점심시간이 되었습니다.
문제를 고르는 순간부터 맞추기까지 모두 이 시간 안에 넣다보니 어려운 문제에 도전하는건 선뜻 망설여지더라고요.
백준과 연동해서 티어를 매겨주는 서비스인 solved.ac에서는 랜덤 마라톤이라는 기능을 제공하고 있습니다. 마라톤에서 추천해주는 문제를 풀 수록 퍼포먼스가 증가하고, 증가한 만큼 다음 마라톤에서 추천해주는 문제의 난이도가 올라가는 시스템입니다. 마침 여기서 추천해주는 문제들이 괜찮게 쉬운 정도라 점심시간 밥먹고 그 짧은 30분으로 하루하루를 연명했었습니다.

백준은 문제별로 제출한 코드의 실행 시간이 짧을수록, 시간이 동일하다면 메모리를 적게 사용할수록, 메모리마저 같다면 작성된 코드 길이 순으로 랭킹을 보여주는데요, 이걸 어떻게 하면 더 줄일 수 있을까 고민하다보니 자연스럽게 더 빠른 코드, 더 효율적인 방법을 고민하게 된 것 같아요. 이걸 스킬이 늘었다 해야 할지 관점이 생겼다 해야할진 모르겠지만..
한번 제출을 했더라도 내 위에 랭크된 코드들이 있으면 "어떻게 저기까지 줄였지?" 생각해보면서 문제를 푸는 더 최적화된 방법이 있을지에 대한 고민을 하다보니, 같은 결과를 내더라도 2차원 배열을 1차원으로 줄여서 푸는 방법이나 불필요한 부분을 제거해서 더 빠르게 풀리는 방법들을 스스로 찾아보게 되는 자세가 늘었다고 생각합니다.
캐시 지역성, 모듈러 연산, I/O 버퍼 줄이기, 비트 마스킹 등등 문제를 풀며 자연스럽게 접한 잡기술들도 늘었다면 늘었다고 볼 수 있겠네요.
꼭 알고리즘 문제 관점이라기보단 뭔가를 꾸준히 매일매일 했다는 점에서 느낀점도 몇가지 있습니다. 한 3가지정도로 정리가 될 것 같네요.
하루에 하나씩 백준 문제를 푸는 건 언뜻 보기에는 굉장히 성실해 보이고, 대단해보일수 있을거라 생각합니다. 뭐 실제로도 나쁜 습관이 아니기도 하고, 초반에는 도움이 될 수 있어요. 하지만 저는 이걸 꾸준함의 정의로 굳혀버리다 보니 오히려 독이 될 수 포인트가 종종 생겼던 것 같아요. 왜냐면 백준을 푼다(= 알고리즘을 공부한다)는건 단순히 문제 수를 채우는 활동이 아니라 특정 문제 상황에 대한 예행연습을 하며 개념을 쌓아 올리는 과정이기 때문입니다.
어떤 날은 쉬운 문제를 풀게 되어서 10분만에 끝냈던 적도 있고, 반대로 어떤 날은 어려운 문제를 풀게 되어서 3-4시간 넘게 고민해서 풀었던 적도 있습니다.
더 어려운 문제를 만났을 때는 아침부터 하루종일 고민하다가 저녁에 샤워할 때 딱 생각이 나서 풀었던 적도 있습니다. 아예 접근을 못했던 문제는 넘겨버린 적도 있었구요. 이렇게 하루하루 쌓이다보니 꾸준함이라는 것을 "하루에 하나씩 oo하기"로 보는 방식에는 한계가 있다는 걸 느끼게 되었습니다.
결국 제가 내린 결론은 하루에 한 문제가 아니라 끊지 않고 계속 연결되는 유연함, 지속 가능성이 더 꾸준함에 적합하다는 것이였습니다.
예를 들어 어떤 날은 3~4문제를 몰아서 풀고, 어떤 날은 문제를 안 푸는 대신 이전에 풀었던 문제를 복기하거나 개념을 정리하고, 어떤 날은 문제 하나를 잡고 깊게 파고들면서 여러 풀이를 비교해보는 등 이런 흐름이 이어지고 있다면, 그건 충분히 꾸준한 것이라고 생각해요.
오히려 하루에 하나에 매몰되면 시간이 없거나 컨디션이 안 좋은 날에도 억지로 쉬운 문제를 풀고 넘어가게 되는데, 솔직히 이렇게 만들어낸 스트릭이 좋다고는 느껴지지 않아요. (정말 다행인 점은 백준 푸는 동안 크게 아팠던 적이 없어서 병원을 가도 노트북을 들 힘은 있었다는 것입니다 ^_^;;)
조금 더 나아가서 꾸준함은 횟수보단 밀도와 지속성에 더 큰 비중이 있다고 생각하게 되었습니다. 극단적으로 말하면 3일 동안 깊게 고민하고 많이 배우는 사람이 30일 동안 아무 생각 없이 한 문제씩 푸는 사람보다 더 빠르게 성장할 수도 있다는 것입니다.
그런 관점에서 깊이있는 꾸준함에 가까운 스트릭은

1번보다 2번 사진의 양상을 띄는 것으로 생각이 바뀌었습니다.
결론은
입니다.
꾸준함은 강박을 가지며 지켜야 할 정도로 빡센 개념이 아닙니다! 끊어지지 않는 유연한 흐름을 유지하고 있다면 충분히 꾸준하다고 볼 수 있습니다. 스스로에게 지속 가능성만 보장할 수 있다면 스트릭은 그저 겉으로만 보이는 증적에 불과합니다.
요즘은 막히는 문제가 있으면 AI에게 질문하는게 자연스러운 일이 되었고,
실제로도 많은 도움을 받을 정도로 예~전보단 성능이 좋아졌습니다. 오푸스 4.6 없었으면 회사 못다닐뻔했거든요..
다만 저는 ps를 할 때만큼은 AI를 사용하지 않고, 조금 더 시간이 걸리더라도 스스로 생각하는 시간을 충분히 가져가는 편을 선택하고 있습니다. 문제를 읽고 어떤 접근이 가능할지 고민해보기도 하고 막혀서 한참을 멈춰 있기도 하는 그 생각하는 과정 자체가 결국에는 가장 중요한 부분이라고 느꼈기 때문입니다.
특히 바로 답을 보지 않고 뻐겨보는 시간에서 얻는 것들이 분명히 있다고 생각합니다. 처음에는 감이 1도 안잡히던 문제가 계속 머릿속에 남아 있다가 어느 순간 다른 문제와 연결되기도 하고, 전혀 다른 상황에서 갑자기 해결 방법이 떠오르기도 합니다. (특히 샤워할때 😁)
이런 경험들이 쌓이면서 문제를 바라보는 시야가 조금씩 넓어지는 걸 느끼게 됩니다.
그래서 저에게 문제 풀이 과정은 단순히 정답을 맞히는 행위라기보다는, 생각하는 힘을 연습하는 시간에 더 가깝습니다. 이 시간을 건너뛰지 않기 위해서라도 문제를 풀 때만큼은 AI의 도움을 의도적으로 배제하고 있어요.
그리고 한 가지 더 중요하게 생각하는 이유가 있습니다. 결국 AI가 코드를 짜줘도 그 코드를 제출하고 사용하는 건 사람입니다. 그 과정에서 코드의 동작을 충분히 이해하지 못한다면 문제가 생겼을 때 원인을 파악하거나 책임 있게 대응하기가 어려워집니다.
여기에 더해, 기본기가 부족한 상태라면 AI를 활용하는 방식에도 한계가 있습니다. 내가 이 개념에 대해 정확히 알고 있을때와 그렇지 않을 때에는, 질문의 방향성이나 깊이에서 분명히 차이가 나기 때문입니다. 같은 AI를 쓰더라도 이해도가 다르면 다른 결과물을 가져갈 수 밖에 없습니다. 그렇기 때문에 기본기는 결과를 이해하고 책임지기 위한 최소한의 기반이라고 생각합니다.
중요한 건 여전히 비슷한 지점에 있는 것 같습니다. 얼마나 자주 하느냐보다는 얼마나 생각하고 이해하려고 했는지, 그 과정이 쌓이면서 자연스럽게 기본기가 만들어지고, AI도 더 의미 있게 활용할 수 있게 되는 것 같습니다. AI에게 사고를 위임하지 말고, 내가 코드를 짜는 시간을 줄일 수 있는 손과 발처럼 사용했으면 좋겠습니다.
꾸준함이 하루에 하나와 다른 개념입니다 쪽은 꼭 하루에 하나를 하는게 꾸준함이 아니다는 것을 설명하는 세션이라면, 이쪽은 꾸준함 자체를 내려놓아도 괜찮다는 말을 하고 싶습니다.
앞에서 이야기한 것처럼, 저는 꾸준함을 지속 가능성에 가깝다고 결론을 지었습니다. 이 이야기를 조금 더 밀어붙여 보면, 경우에 따라서는 그 흐름조차 잠시 내려놓아도 괜찮다는 것입니다.
우리는 종종 ‘꾸준히 해야 한다’는 말에 너무 익숙해져 있어서, 그것 자체를 하나의 목표처럼 붙잡고 있는 경우가 많습니다. 1일 1커밋이라던가, 일기를 꼭 하루에 한편을 무조건 써야 한다던가, 듀오링고로 하루에 하나씩 영어문제를 푼다던가.
하지만 모든 상황에서 똑같은 우선순위를 유지하는 건 생각보다 많이 어렵고, 때로는 그럴 필요도 없습니다. 일이 바쁘거나, 컨디션이 좋지 않거나, 다른 더 중요한 것에 집중해야 하는 시기라면, 잠시 멈추는 선택도 충분히 자연스러운 흐름의 일부라고 생각합니다.
오히려 꾸준함을 놓치지 않으려는 집착이 강해질수록 의미 없이 억지로 이어가는 순간들이 생깁니다. 예 무조건 생깁니다. 그렇게 만들어진 결과는 겉으로는 꾸준해보일지 몰라도, 실제로는 앞에서 이야기했던 밀도 있는 시간과는 거리가 멀어질 수 있습니다.
백준을 푼지 1000일을 찍었을 때 진짜 끊어야겠다고 생각했을 때가 있었습니다. 내가 지금 회사에 다니면서 일을 하느라 바쁜데, 백준을 지금 우선순위로 두어야 할 때인가? 라는 생각이 들었어요. 만약 그렇지 않다면 잠시 내려놓는 것도 괜찮다고 받아들이려고 합니다. 중요한 건 한 번 중단됐다고 끝- 이 아니라, 다시 돌아올 수 있는 여지를 남겨두는 것이라고 생각하기 때문이에요.
결국 하고 싶은 말은 동일합니다. 꾸준함은 억지로 이어붙이는 것이 아니라, 다시 이어갈 수 있는 상태를 유지하는 것에 더 가깝습니다. 잠시 멈추더라도 방향을 잃지 않고, 필요할 때 자연스럽게 다시 이어갈 수 있다면 충분히 꾸준하다고 볼 수 있다고 생각합니다.
쓰다보니까 1일1xx 하시는 분들 저격하는 느낌이 드는데.. 전혀 그렇지 않고요 저는 계속 이어나가시는 분들 항상 존경합니다. 어떤 마음가짐으로 계속 수행중이신지는 모르겠지만 이 글을 읽고도 스트릭을 끊지 않을 수 있는 사람이라면 높은 확률로 의미있는 행동을 매일매일 하고 있을 사람이라고 생각해요.
사실 저는 백준 중독이라기보단 스트릭 중독입니다. 24년 2월부터 26년 3월까지 일기를 써 온 적이 있는데, 진짜 강박적으로 조선왕조실록 쓰듯이 제 행동, 생각을 정리했던 적이 있습니다. 어떤 날은 바빠서 일기를 못 썼다? 그러면 대충 뼈대만 붙여서 요약만 해두고 다음날에 살을 붙여서 글을 쓰는 방식으로 일기를 작성했었어요.
백준도 감을 잃지 않기 위해서 풀었다- 느낌도 있지만, 그냥 어느 순간부터는 구멍나는게 보이기 싫어서 일부러 스트릭 프리즈도 안쓰고 어디 갈때마다 노트북 챙겨다니면서 다녔었어요.
(5월 2일에 힙플페 가는데 이날은 노트북 안가지고 가려고요 😎)
그렇다 보니 스트릭이 끊기는 이유가 아무도 반박할 수 없는 강력한 힘에 의해 끊겼으면 하는 바람이 있었습니다. 제가 21살이라 군대를 안 다녀왔는데, 만약 훈련소를 가게 된다면 노트북을 쓰지 못하니 이때 끊을 생각을 하고 지금까지 살아왔었어요. 제 훈련소보다 백준이 먼저 문을 닫을지는 몰랐지만..
3년 8개월동안 백준을 풀면서 인연을 갖게 된 사람들도 참 많이 있습니다. 처음 백준을 시작하게 된 계기를 만들어준 은빈이, 자습시간에 같이 문제를 풀면서 시간을 보냈던 병진이 정현이, 같은 반에서 같이 문제 풀면서 놀았던 성환이, 교내 스터디 시간에 열심히 잘 참여해준 스터디 친구들, 수학과 ps의 관계를 인지하고 잘 가르쳐주신 고등학교 수학 선생님, 회사 옆자리에서 재미있게 수학을 알려주신 재연님 등등..
아마 백준 안풀고 평범한 학교생활을 보냈다면 그저 그런 사람으로 남았을 수도 있었을 텐데, 덕분에 좋은 사람들을 많이 알고 가서 좋다고 생각합니다.
이제는 스트릭을 더 이상 쌓지 않아도 되니 해방된 느낌이 듭니다. 오히려 좋다는 마인드 ㅇㅇ 저는 앞으로도 꾸준하게 알고리즘에 관심을 갖겠지만, 당분간은 우선순위가 높은 더 중요한 일에 시간을 쏟지 않을까 싶습니다.
재미도 없이 글이 참 긴데 읽어주셔서 감사합니다. 다음에는 더 좋은 글로 찾아뵙겠습니다.

"샤워하다가 풀이가 생각난다" 알고리즘 문제는 아니지만, 해킹 문제를 풀 때 저도 비슷했던 경험이 많아서 공감되네요. 일상의 전체가 특정 작업에 몰두했을 때 나타나는 현상 같기도 합니다 ㅋㅋ
또한 무조건적인 연속성보다는 항상성을 추구하는 모습과, AI의 활용 방향에 대해 고민하는 모습에서 스트릭을 지켜온 그 긴 시간 사이에 올바른 방향으로 나아가기 위한 찬홍님의 고찰이 느껴졌습니다.
비록 백준은 사라졌지만, 백준에서 쌓아올린 시간과 지식은 찬홍님의 앞으로의 여생에서 무너지지 않을 내적 자산이 될거라 믿어 의심치 않습니다. 앞으로도 찬홍님의 개발 여생을 응원합니다. 좋은 글 감사합니다.
좋은 글 잘 봤습니다. AI가 성능이 좋아도 기본기가 필요하다는 말에 공감되네요.