자료구조 = 데이터 구조(Data Structure)
대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조
어떤 데이터 구조를 사용하느냐에 따라 코드 효율이 달라진다.
효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라 체계적으로 데이터를 구조화해야 한다.
현실 세계의 정보를 어떻게 프로그래밍 데이터로 변환해서 저장할지에 대한 방법
배열
Stack
Queue
Linked-List
Hash-Table
Heap
등등
어떤 문제를 해결하기 위한 절차와 방법
어떤 문제에 대해, 특정한 INPUT을 넣으면, 기대하는 OUTPUT을 얻을 수 있도록 만드는 프로그래밍
현실세계의 가장 대표적인 알고리즘은? 레시피
알고리즘은 정답이 없다.
따라서 다양한 방법으로 같은 INPUT을 가지고 기대하는 OUTPUT을 낼 수 있다.
하지만 얼마의 시간이 걸리고, 얼마의 저장공간이 쓰이는지=> 효율 차이 발생
어떤 자료구조와 알고리즘을 쓰느냐에 따라 성능이 천지차이가 난다.
요즘은 빅데이터, 방대한 양의 데이터를 다루는 경우가 많기 때문에 알고리즘의 중요도가 점점 더 올라갈 것이라고 볼 수 있다고 한다.
대표적인 자료구조와 알고리즘은 알고있어야 성능을 고려한 효율적인 프로그래밍을 할 수 있고, 프로그래밍의 기술과 역량을 익힐 수 있는 방법이라고 할 수 있다.