들어가며
알고리즘의 중요성
개발에서의 핵심은 효율적이고 최적화된 코드를 작성하는거라고 생각한다.
컴퓨터는 한정된 자원을 사용하기 때문에, 불필요한 리소스는 최대한 줄이는 것이 좋고, 여러 사용자가 동시에 시스템을 이용하는 환경이나 실시간 처리가 요구되는 상황에서는 처리 속도가 매우 중요해지기 때문이다.
또 시스템의 응답 속도가 느리다면 사용자 경험 측면에서도 좋지않고, 서비스의 품질 저하로 이어질 수도 있어서,
실행 속도를 높이는 것은 단순히 기술적인 문제뿐만아니라 사용자 만족도와 직결된다.
효율적이고 최적화된 코드를 작성하기 위해 중요한 것은, " 효율적인 알고리즘 " 을 사용하는 것이다
특정 프로젝트에서 API를 설계해야 할 때, “어떤 로직으로 구현해야 할지”, “어떤 방식으로 문제를 해결해야 할지”와 같은 기능 설계를 하는 것이 코드를 작성하는 것만큼 매우 중요하다. 이때 알고리즘 문제를 풀며 쌓은 경험들이 이런 고민을 해결하는 데 큰 도움을 줄 수 있다고 생각한다. 알고리즘 문제 풀이의 기본이 문제를 구조적으로 분석해서 고민한 다음, 가장 적합한 해결책을 찾아서 코드를 작성하는 것이기 때문이다.
본론
알고리즘 시작
위에서 적은 일부의 내용처럼 나는 평소에 알고리즘의 중요성을 항상 깨닫고 있었긴했지만, 막상 알고리즘 문제를 푸는 것을 실천은 하지 못한 채 시간을 보냈다.
그러다가 2학기가 끝날때 쯤이였나, 가천대학교 동아리 Leets를 같이 하고있는 예찬이가 프로그래머스 문제 쉬운거부터 하루에 하나씩 풀어보는게 도움이 될 수도 있다고 나에게 추천을 해주었다.

처음에 시작할때 어디서부터 어떻게 해야할지 막막하기도 했고, 너무 어려운 문제들은 풀 자신이 없었어서
프로그래머스가 정해준 난이도가 쉬운 Lv.0부터 가끔씩 Lv.1을 푸는 방식으로 하나에 한 문제라도 풀자 라는 생각으로 부담없이 조금씩 시작하고 있었다
알고리즘 스터디
위에서 진행하던 방식도 좋았지만, 해당 방식보다도 알고리즘에 대한 체계적인 학습이 필요하지 않을까라는 생각을 하고 있던 중에 같은과 동기 동윤이가 같이 코테 스터디를 해보는게 어떻겠냐 나에게 제안을 해주었다.

물론 전체적으로 코테의 비중이 줄고있기도 하고, 전보다 난이도가 떨어지고 있다고 해도 알고리즘은 매우매우 중요하다는 것을 알고있었기에, 거절할 이유가 없었고
알고리즘 문제를 풀다 보면 동일한 문제를 여러 방식으로 해결하는 경우가 많기도 해서,
서로서로 막혔던 부분들을 공유해보거나, 다른 사람의 풀이들을 보면서 얘기하고 답을 찾는거 만으로도 도움이 될거라고 판단을 해서 바로 수락을 하게되었다 👊🏻
또한 멤버도 평소에 잘 알고있던 상효랑 승현이랑 세빈이형이였어서 커뮤니케이션에도 문제가 없을거라고 생각했다.
스터디 방식
스터디 방식은 " 백준, 프로그래머스, ‘Do it! 알고리즘 코딩 테스트: 자바 편 " 교재와 백준 사이트의 " 백준 단계별로 풀어보기 " 를 매주에 정해진 분량을 풀고, 깃허브에 완료한 사항, 풀이 중에 막혔던 문제, 특이사항, 후기 등등에 대한 이슈를 작성하여 공유한다.

대면, 비대면으로 해당 내용들을 공유하며 얘기해보고 노션에 문서화 하는 방식으로 스터디를 진행하고 있다.

마치며
기존에는 블로그에 프로젝트에 대한 개발이 끝나고 특정 부분에 대한 회고를 올리는 방식으로만 업로드를 했었는데,
해당 방식에 추가로 이제 알고리즘 문제 풀이중에서 어려웠던 내용이라던지 라이트업 코드를 보진 않더라도 힌트를 참고했던 블로그 내용, 중요하게 생각하는 부분 등등을 별도의 알고리즘 카테고리를 새로 추가해서 작성해보려고 한다
아마 백준(11660번, 구간합 구하기) 이런 제목의 게시글들이 추가되지 않을까싶다
아직 올해 인턴을 할지, SW 아카데미를 할지는 모르는 상황이고
심지어 개강을 하기 전에, 영어 오픽이나 토스 + 정보처리기사를 따야해서 정말 바쁠거같지만
제일 중요한 시기기때문에 1~2년 열심히 해봐야겠다 🔥

'일상' 카테고리의 다른 글
SOPT 36기 YB 서버 합격 (2) | 2025.03.26 |
---|---|
시작 (3) | 2024.12.23 |