[알고리즘] 1년 만에 다시 알고리즘 문제를 풀며 느낀 점
개발의 시작이었던 알고리즘
2년 전 개발자라는 꿈을 꾸면서 처음으로 혼자 자바를 공부하고 시작했던 것이 알고리즘이었다.
그때 나는 사회복무중이였기에 업무가 있지 않은 모든 시간을 알고리즘을 푸는 데 사용했다.
처음에는 진짜 너무 막막하고 어떻게 해야 할지몰랐던 게 생각났다.
음악을 계속해 왔기에 수리적 사고?? 라는 말조차 뭔지 몰랐고 감도 안 왔다.
그런 막막함을 가지고 1년 반 남짓한 시간 동안 알고리즘을 풀었다.
점점 할수록 그전에는 하지 못했던 유사 수리적 사고를 나름 하게 되었고 꽤 어려운 문제들도 풀 수 있게 되었었다.

이 때의 알고리즘은 나에게 있어서 개발의 전부였고 또한 너무 재밌었다.
1년 만에 다시 풀어본 알고리즘
우테코에 들어온 이후 알고리즘이 아닌 진짜 개발이 무엇인지 대해서 알게 되었다.
내가 백엔드 개발자로서 마주할 문제들이 어떤 건지에 대해서 배웠고 계속 알아가는 중이다.
그러다 보니 어느새 알고리즘은 나한테 있어 그저 취업을 위한 공부로밖에 느껴지지 않았고 당장 해야 할 의미를 찾지 못했다.
어제 같은 프로젝트팀원들끼리 오랜만에 알고리즘을 풀어보았다.
첫 문제는 내가 이전에 풀었던 문제였다. ( k번째 수)
30분 정도 아이패드로 풀어보다가 도저히 생각이 안 나 내가 풀어놓은 답을 보며 문제를 이해하고 해결했다.
이때까지만 해도 솔직하게 내가 이전에 풀었던 문제들과 비슷한 건 풀 수 있을 거라는 자신감이 있었다.
두 번째 문제는 처음 풀어보지만, 프로그래머스 레벨1 문제였다. ( 옹알이)
레벨1을 듣고 그전에 레벨3들을 풀어왔기에 “금방 풀겠지ㅎ” 하며 시작했는데…
단 10분만에 우선 내 자신감이 이제는 자만이라는 것을 알게되었다.
결국 팀원 중 가장 마지막으로 이 문제를 풀게 되었다.
집으로 돌아가는 지하철 내내 너무 분하면서도 좌절했다.
그 후 지하철에서 내려서 집까지 걸어가며 곰곰이 생각했봤다.
“내가 분하고 좌절한다고 나의 알고리즘 실력이 느는 것도 아니고 내가 느끼는 문제가 해결되지도 않는데 나는 왜 이렇게 이 감정에 집중하고 있을까?”
순간 머리가 맑아졌고 그전의 나와 이번에 나의 차이점을 찾아보기 시작했다.
이전의 나보다 못한 것
- 문제에 대해서 제대로 파악하지 않았다.
- 이전의 내가 제일 신경 쓰고 열심히 했던 부분이었다.
- 완전 탐색처럼 문제가 주는 모든 경우의 수를 고려하면서 풀었다.
- 이전의 나는 문제가 주는 경우의 수와 조건들을 고려해서 경우의 수들끼리 분류를 하며 풀었다.
- 무조건 조건에 부합하는 경우들
- 무조건 조건에 부합하지 않는 경우들
- 엣지 케이스
- 이전의 나는 문제가 주는 경우의 수와 조건들을 고려해서 경우의 수들끼리 분류를 하며 풀었다.
오늘은 저 위에 내용들을 생각하며 다시 한번 알고리즘 문제를 풀어보려고 한다.
그리고 정리하면서
“알고리즘의 조건과 상황이 실생활이라면 알고리즘을 푸는 것이 그저 취업을 위한 것이 아닐 수 있겠는데”
라는 생각이 들었다.
정말 바쁜 날이 아니면 하루에 알고리즘 문제 1개 정도 꼭 풀어보겠다는 약속은 아닌 당찬 포부 를 내세우며 한 단계 성장함을 느끼며 이 글을 마무리 하겠다.