알고리즘 공부를 시작하기 전에 내가 어떤 언어로 문제를 풀 지 정해야 할 필요가 있다.
내가 알고 있는 언어들을 나열해보면
다음에 이유로 Java만을 사용하고 싶었다.
1. 기존에 사용하던 C++과 유사한 언어
2. 알고리즘 뿐 아니라 웹 개발에서도 필요한 자료구조를 같이 공부할 수 있다.
3. 편리하다는 이유만으로 문자 파싱 문제만 Python을 사용하고 싶지 않았다.
알고리즘 처음 공부를 할 때 시간 복잡도 중심으로 공부를 하다 보니 문제 풀이 과정에서 메모리 문제로 골머리를 썩었던 경험이 있다.
풀이 방법을 선택하기 전에 시간 복잡도는 물론 공간 복잡도가 발생하지 않을지 미리 고려하는 습관이 필요하다고 생각했다.
어떤 자료구조로 코드를 구현하냐에 따라서 알고리즘 효율에 차이가 발생할 수 있다. 각 자료구조에 특징과 장단점을 미리 정리해놓을 필요가 있다.
다음 포스트에 자료구조를 정리해보고자 한다.