
안녕하세요, 츄르 사려고 코딩하는 집사! 코집사입니다.
자료구조란?
정의
컴퓨터에서 데이터들을 효율적으로 관리(저장, 삭제, 수정 등)할 수 있도록 하는 데이터의 구조를 의미합니다.
데이터의 특성, 데이터 간의 관계 등 효율적인 데이터 관리를 위해 효율적인 알고리즘을 사용하고, 알고리즘을 통해 시간 복잡도나 코드의 효율성, 성능을 결정하곤 합니다.
종류
자료구조의 종류는 배열(Array), 스택(Stack), 큐(Queue), 링크드 리스트(Linked list), 힙(Heap), 트리(Tree) 등이 있습니다.
Python에서는 Tuple, List, Dictionary, set 등으로 자료구조의 대부분을 구현할 수 있습니다.
배열(Array)
Python에서 배열은 List로 쉽게 구현할 수 있습니다.
Python에서 배열은 같은 종류의 데이터를 순차적으로 저장할 수 있으며, Index를 통해 리스트의 값들에 접근을 할 수 있습니다.
A라는 리스트에 1,2,3,4,5를 넣고, print 문 또는 for문을 이용하여 A의 리스트에 있는 값들을 출력할 수 있습니다.
Python에서 Index는 0부터 시작하며 아래의 A 리스트의 0번 Index는 1입니다.

장점
- Python에서 Index를 통해 리스트의 값들에 직접 접근을 할 수 있습니다.
- 리스트의 값에 직접 접근을 하기 때문에 빠른 접근이 가능합니다.
단점
- 빈 리스트로 정의하여 데이터의 추가와 삭제가 효율적이지 못합니다. 추가할 경우에는 리스트의 메모리 공간이 많이 필요하며, 삭제할 경우에는 메모리의 빈 공간이 생겨 처리를 해줘야 합니다.
- 리스트의 길이 조절이 어렵습니다.
배열(Array) 연산
- A.append(obj)
- A의 리스트에 추가시킨다. 뒤에 추가.

- A.extend(list)
- A의 리스트에 list를 연결하여 확장한다.

- A.insert(index, obj)
- A의 리스트에 지정한 인덱스 위치에 obj를 추가한다.

- del A[index]
- A의 지정한 인덱스에 있는 리스트의 값을 삭제한다.

- A.pop(index)
- A의 리스트에서 지정한 인덱스의 리스트 값을 삭제한다.

- A.remove(obj)
- A의 리스트에서 0이라는 리스트의 값을 삭제한다.

- A.reverse()
- A의 리스트의 값들의 순서를 반대로 배열한다.

- A.sort()
- A의 리스트를 정렬한다.
- Default는 오름차순, 내림차순으로 설정하려면 A.sort(reverse = True) 사용

- A.index(obj)
- A의 리스트에 있는 값의 인덱스 위치를 출력한다.

- A.count(obj)
- A의 리스트에 obj가 몇 개 있는지 출력한다.

2차원 배열(Array)
2차원 배열은 행과 열로 구성된 것을 말합니다.
2차원 배열(Array) 선언

for문을 이용한 2차원 배열 선언
- 아래의 코드처럼 2중 for문을 사용하여 2차원 배열을 선언할 수 있다.
- 아래의 for문은 코드를 줄여 사용한 것이고, 풀어쓴 코드는 그 아래의 코드다.


'알고리즘 > 자료구조' 카테고리의 다른 글
파이썬 자료구조 큐(Queue) (0) | 2020.10.05 |
---|