차밍이
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 자료구조란? 본문
반응형
목차
자료구조란?
- 자료의 구조, 데이터의 구조
- 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미한다.
- 코드상으로 얼마나 효율적으로 데이터를 처리하기위해 구조적으로작성하는가를 논하는 것
알고리즘이란?
- 어떤 문제를 풀기 위한 절차나 방법
자료구조와 알고리즘이 중요한 이유?
- 어떤 자료구조와 알고리즘을 쓰냐에 따라, 성능이 매우 크게 차이가 발생된다.
- 프로그래밍을 잘 할 수 있는 기술과 역량을 검증하는 척도로 사용된다.
배열
배열의 장점
- 데이터의 시작점만 알면 내부의 데이터들의 순서를 바로 알 수 있다.
- 순차적인 데이터를 손쉽게 다룰 수 있다.
- 빠르게 데이터에 접근 가능하다.
배열의 단점
- 데이터가 가변적인 경우 추가나 삭제가 쉽지 않음
- 최대 길이를 미리 지정해야함
큐 (Queue)
큐의 구조
- FIFO(First-In, First-Out) 또는 LILO(Last_In, Last-Out) 방식으로 스택(Stack)과 순서가 반대이다.
큐 용어 정리
- Enqueue: 큐에 데이터를 넣는 기능
- Dequeue: 큐에서 데이터를 꺼내는 기능
큐가 많이 사용되는 곳
- 멀티태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용된다. ex 운영체제
파이썬 - enqueue, dequeue 기능 구현하기
queue_list = list()
def enqueue(data):
queue_list.append(data)
def dequeue():
data = queue_list[0]
del queue_list[0]
return data
실제 동작 확인하기
for index in range(10):
enqueue(index)
queue_list
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(10):
dequeue()
print(queue_list)
>>>
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7, 8, 9]
[3, 4, 5, 6, 7, 8, 9]
[4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
[6, 7, 8, 9]
[7, 8, 9]
[8, 9]
[9]
[]
반응형
'파이썬 > 알고리즘' 카테고리의 다른 글
[알고리즘] 패스트캠퍼스 알고리즘 학습 - 삽입 정렬(Insertion Sort) (0) | 2021.03.31 |
---|---|
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 더블 링크드 리스트(Double Linked List) (0) | 2021.02.09 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 링크드 리스트(Linked List) (0) | 2021.02.08 |
[알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 스택이란? (0) | 2021.02.07 |
[파이썬] 백준 9037번 The candy war : list comprehension 연습 (0) | 2020.04.09 |
[파이썬] 백준 16165번 걸그룹 마스터 준석이 (0) | 2020.04.08 |
[파이썬] 백준 14502번 연구소 : DFS + 브루트 포트 (0) | 2020.04.07 |
[파이썬] 백준 17269번 이름궁합 테스트 : itertools 함수 활용 (0) | 2020.04.06 |
관련된 글 보기
Comments