알고리즘 문제를 풀기 시작한 지도 벌써 1년 반이 지났다.
처음에는 이런 문제들을 왜 풀어야 하는지에 대한 의문이 많았다.
주변 지인들이 알고리즘 문제를 푸는 모습을 몇 번 본 적은 있었지만 나와는 거리가 먼 이야기처럼 느껴졌다.
코딩을 열심히 하는 친구들은 보통 알고리즘 공부도 병행하는 경우가 많았던 것 같다.
사실 나는 어떤 것을 공부해야 할지 방향을 잡지 못한 상태였고, 그러던 중 일단 알고리즘이라도 풀어보자는 마음으로 시작하게 되었다.
막상 시작해보니 말도 안 되는 문제들도 많았고 아무리 고민해도 풀리지 않는 문제들이 정말 많았다.
처음에는 '틀렸습니다'라는 문구가 나올 때마다 기분이 몹시 나빴는데, 지금은 조금 익숙해졌다. (물론 여전히 썩 유쾌하진 않다.)
오랜 고민 끝에 문제를 해결했을 때 느끼는 그 감각은 항상 새롭고 짜릿하다.(나름 재밌다!)
문제를 풀다 보니 시간복잡도와 공간복잡도에 대해 제대로 이해할 수 있게 되었다.
학교 수업 시간에 자료구조나 알고리즘에 대해 들은 적은 있었지만 당시에는 그게 어떤 의미인지 실제로 어디에 쓰이는지 전혀 감을 잡지 못했다.
오히려 알고리즘 공부를 하면서 역으로 자료구조를 다시 찾아보게 되었고 지금 생각해보면 수업에서 배운 것들이 확실히 도움이 되었던 것 같다.
알고리즘에는 정말 많은 유형이 있다.
투포인터, 구현, 백트래킹, BFS, DFS, DP, HashMap, 트리, 그리디, 최단거리, 위상 정렬 등등...
지금도 새로운 유형을 만나면 버벅일 때가 많다.
그래도 꾸준히 공부하면서 확실히 코딩에 대한 자신감이 생겼다는 걸 느낀다.
이제는 어떤 문장을 봤을 때 그걸 코드로 구현하는 데 큰 두려움이 없다.
정답이든 오답이든 일단 머릿속 생각을 코드로 표현해낼 수 있게 되었다.
그리고 남이 작성한 코드도 예전보다 훨씬 수월하게 이해할 수 있게 되었다. 나쁘지 않은 성과라고 생각한다.
예전에는 Stack이나 Queue를 지금 당장 구현해보라고 하면 막막했지만 지금은 별생각 없이 구현할 수 있다.
시간이 얼마나 걸리든 단계별로 하나씩 해나가면 된다는 자신감이 생겼다.
재귀함수에도 익숙해진거같다. 예전에는 재귀만 나오면 괜히 어렵게 느껴졌는데 지금은 어느 정도 친숙하게 다가오는 느낌이다. 물론 아직도 DP나 그리디, 복잡한 문제들은 쉽게 풀지 못한다. 언제쯤 그런 문제들도 자연스럽게 풀 수 있을지 궁금하다.
문제를 풀다 보니 어느새 플래티넘 티어까지 올라오게 되었다.(사실 플레티넘이라는 티어를 바라보고 달려왔었다.ㅋㅋㅋ)
플래티넘이라는 티어에 도달하긴 했지만 여전히 못 푸는 문제가 너무 많고 스스로 많이 부족하다는 걸 느낀다.
앞으로도 더 노력해야겠다는 생각이 든다.
가능하다면 조금 더 노력해서 다이아 티어까지 가보고 싶다..(욕심일지도.....)
최근에는 정보처리기사 필기와 실기를 준비하느라 알고리즘 문제를 많이 풀지 못한거같다..
이제는 시험도 끝났으니 다시 한번 달려보고자한다.
만약 지금 무엇을 공부해야 할지 몰라 막막한 사람들이 있다면 백준에서 알고리즘 문제를 조금씩 풀어보는 것을 추천하고 싶다.
처음에는 이게 무슨 도움이 될까? 싶겠지만 해보면 확실히 도움이 된다.
지금은 Unreal 엔진을 이용해 배틀그라운드 모작 팀 프로젝트를 진행 중이다.
그동안 쌓아온 알고리즘 공부가 게임 개발에도 꼭 도움이 되었으면 좋겠다.
'백준 > 코테문제집' 카테고리의 다른 글
[백준] C++ K번째 최단 경로 찾기(1854) (0) | 2025.02.28 |
---|---|
[백준] C++ 최단 경로 구하기(1753) (0) | 2025.02.28 |
[백준] C++ 거짓말(1043) (0) | 2025.02.26 |
[백준] C++ 집합의 표현(1717) (0) | 2025.02.17 |
[백준] C++ 나머지 합(10986) (0) | 2025.01.23 |