자료구조와 알고리즘의 중요성이 중요하다고 계속 말을 하지만 이해도가 낮아 내용을 정리하며 공부를 했다.
자료구조와 알고리즘
' 프로그램 = 자료구조 + 알고리즘 ' 으로 생각하면 될 거 같다. 자료구조와 알고리즘을 이용해 만든 것이 프로그램이다.
처음에는 이게 뭔 소리인가 했지만 자료구조와 알고리즘에 관해 공부하고 이해를 하니 내용을 이해하게 됐다.
그래서 자료구조와 알고리즘을 하나하나 이해해보자
자료구조는 책장에 책을 어떻게 꽂아줄지를 결정하고
이 책을 찾는 여러 방법이 책을 찾는 방식이 알고리즘
자료구조는 영어로 Data Structure 데이터의 구조이며 데이터를 효율적으로 저장하고 관리하기 위한 방법이다.
여기서 데이터는 우리 생활에 무수한 정보들을 조직화해서 나타낸 것이다.
현실에 여러 데이터들이 존재한다. 이것들을 그대로 컴퓨터에서 구현하고 싶어 만든 것이 추상화 데이터(ADT)로 자료구조이다.
python에서 여러 문법들을 보면 class로 존재하고 있다. 그 문법도 누군가가 현실세계의 데이터를 추상화해서 구현 한 자료구조이며 나도 나만의 방법으로 저장하고 관리하기 위해 만들 수 있고 활용이 가능하다.
두 가지만 기억하자 구조와 연산 자료구조의 데이터를 저장하는 구조와 이를 이용한 연산방법
예를 들어 list는 선형 자료구조이며 연산으로는 append, index 등이 존재한다.
이처럼 자료구조는 데이터를 표현하고 이해하고 활용하는 방법과 이를 이용해 문제를 해결하는 것이 알고리즘입니다.
알고리즘은 문제를 해결하귀 위한 절차나 방법으로 제한된 시간과 공간에 데이터를 처리를 해야 하는데 알맞은 자료구조를 이용한다면 효율정으로 문제해결이 가능하고 프로그램 설계가 가능합니다.
그래서 '프로그램 = 자료구조 + 알고리즘'입니다.
마무리
Stack 구조를 class로 만들어 보며 자료구조를 만들어 보는 것이 좋을 거 같다.