신입 개발자에게 알고리즘은 왜 중요할까

지영·2023년 4월 2일
1

백엔드개발자

목록 보기
4/11

🫠 자료구조, 알고리즘이 백엔드와 무슨 연관이 있나

지금은 백엔드 프레임워크 중 Spring을 위해 자바를 공부하고 있는데,
이전에는 Django를 이용해서 백엔드 개발을 했었다.
그때마다 백엔드 개발은 재밌는데, 코딩테스트는 아무리 봐도 수학문제같고...이게 무슨 연관이 있나?라는 생각이 들었다.

그러다가 Django프로젝트 중 필요한 데이터만 필터링해주는 구현을 해야 했던 경험이 있다.
이때 몸소 깨달았다. 아! 백엔드 구현은 알고리즘을 기반으로 하는 구나!
코테 준비를 하게 되면 이전에 자연스럽게 자료구조-알고리즘을 학습한다. 그리고 완전탐색과 이외의 수많은 알고리즘을 습득해야 한다.

그러면 이 "필요한 데이터만 필터링"하는 구현은 완전탐색으로 안되나? 무지성으로 하면 당연히 된다.

근데 내 프로젝트가 실사용자가 10명도 못채웠기에 망정이지, 정말 큰 프로젝트로 배포된다면 어떻게 될까?
모든 데이터가 완전탐색으로 필터링 되면 ? 당연히 그렇게는 배포가 승인되진 않겠지만 여기서부터가 왜 우리는 알고리즘을 알아야 하고, 코딩테스트를 통과해야 하는지의 이유가 담겨있다.

💭 오키오키 그러면 자료구조-알고리즘 정복해보고 코테를 풀어보자..!



그러면 코테에서 제일 잘나오고 제일 어려운..그니까 내가 못하는 알고리즘은 뭘까..

내 개인적인 약점은.. 그래프탐색이다. DFS, BFS.....

다른 사람 풀이봐도 가끔 "다들 이걸 알아듣는거지?"라는 생각이 들 때가 있다. 나도 따라잡을 거야...👀

카카오나 삼성 코테를 요즘 보면 구현도 많지만 그 외의 알고리즘 문제를 보면 그래프탐색이 제일 많고, 어렵고, 또 정답율도 낮다. 코너케이스까지 맞춰야 하는데 그래프 탐색이 더 어려워서 인 것 같기도 하다.

어렵다고 포기하면 안되는게, 달리 말하면 이걸 정복하면 다른 사람들보다 앞서가는 거 라고 생각한다. 내가 어려우면 다른 사람들도 어려울 테니까!!

손을 못대겠는 DFS, BFS 문제들은 단순히 저것만 나오는 게 아니라, 구현+DFS, BFS, + DP 이렇게 섞여서 나오는 것 같더라(예로 삼성 코테 기출중에 유명한 상어 문제가 있다.)

섞여서 나오는 거를 풀다보면 원리를 빠삭하게 알고 있어야 내가 자유자재로 쓸 수 있다는 것이다. 이번 제로베이스 강의 중 DFS.BFS 는 더 더 신경써서 들어야 겠다..! 여기다가도 포스팅 해봐야 겠다. :)

profile
꾸준함의 힘을 아는 개발자📍

0개의 댓글