자료구조는 많은 양의 데이터를 프로그램에서 처리할 때 어떻게 담아뒀다가 사용할지 데이터 특성에 따라 효율적으로 결정하기 위한 도구들(데이터 구조)이고,
알고리즘은 데이터를 이용해서 문제를 해결할 때 효율적으로 수행하기위한 도구이다.
인공지능 하다보면 데이터를 다루고 어떻게 처리할지 프로그램을 짜게되는데
데이터를 보면 아주 쉬운경우를 제외해도 규칙성이 보이긴 하지만 이 규칙성을 어떻게 이용할지 전략이 딱 서지 않는 어려움을 겪었는데 Data structure를 배워서 효율적으로 데이터를 관리할 수 있게 될 것이라고 기대한다.
또 프로그램을 짜면서 데이터의 양이 너무 많아서 preprocessing 시간이 너무 오래걸린다거나 학습시간이 너무 오래걸리는 경우가 있는데, 아는게 없어서 시간도 줄이지 못했고, 메모리도 줄이지 못했다. 어떤 문제를 해결하는데 사람마다 당연히 방법은 다르지만, 시간복잡도와 공간복잡도를 최소화하는 방법은 비즈니스 가치가 있다.
1. 대표적인 자료구조
Array, Stack. Queue, Heap, Linked List, Graph, Hash Table
2. 알고리즘의 시간복잡도, 공간복잡도
작업수행시간이 짧고, 메모리를 적게 차지해야 좋은 알고리즘이다.