[알고리즘] DFS/BFS
·
Study/알고리즘
DFS 깊이 우선 탐색 그래프에서 깊은 부분을 우선적 탐색하는 알고리즘 -> 스택자료구조 (비재귀) or 재귀함수를 이용 동작 방법1. 탐색 시작 노드를 스택에 삽입 -> 방문처리2. 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리-> 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼램3. 더이상 2번 과정을 수행할 수 었을 때까지 반복
[자료구조][python]덱(deque)
·
Study/자료구조
덱(Deque, Double-Ended Queue)-양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조 = 스택 + 큐 특징- O(1) 시간 복잡도: 덱의 양쪽 끝에서 삽입과 삭제가 이루어지기 때문에, 이 연산들은 상수 시간 복잡도로 처리- 유연한 구조: 앞, 뒤에서 자유롭게 데이터를 추가하거나 삭제할 수 있으므로, 여러 상황에 맞는 작업을 쉽게 처리 파이썬에서의 사용법from collections import deque# 덱 생성dq = deque([1, 2, 3])# 앞쪽에 추가dq.appendleft(0) # deque([0, 1, 2, 3])# 뒤쪽에 추가dq.append(4) # deque([0, 1, 2, 3, 4])# 앞쪽에서 제거dq.popleft() # deque([1, 2, 3, 4]..
[알고리즘][python] 정렬 알고리즘 - 선택정렬
·
Study/알고리즘
정렬(sorting) : 데이터를 특정한 기준에 따라 순서대로 나열. 선택 정렬 - 처리되지 않은 데이터 중에서 가장 작은 데이터 선택해 맨 앞 데이터와 바꾸기 1. 선택 정렬 작동 원리 ( 예시 )[64, 25, 12, 22, 11]  1단계: 배열 전체에서 가장 작은 값 찾기  11을 배열의 첫 번째 요소인 64와 교환 [11, 25, 12, 22, 64]  2단계: 두 번째 요소 이후에서 가장 작은 값 찾기 12를 두 번째 위치에 있는 25와 교환 [11, 12, 25, 22, 64]  3단계: 세 번째 요소 이후에서 가장 작은 값 찾기 22를 세 번째 위치에 있는 25와 교환 [11, 12, 22, 25, 64]  4단계: 네 번째 요소 이후에서 가장 작은 값 찾기 이미 자리에 있기 때문에 교환은..
[자료구조] [python] Stack(스택)
·
Study/자료구조
LIFO (후입 선출)구조를 따르는 자료 구조 즉, 나중에 삽입된 데이터가 가장 먼저 꺼내지는 구조. 스택 연산 종류1. push() : 스택에 원소를 추가.2. pop() : 스택 가장 위에 있는 원소를 삭제하고 그 원소를 반환한다.3. peek() : 스택 가장 위에 있는 원소를 반환한다.  * python에서는 stack[-1]을 사용!4. isEmpty() : 스택이 비어있다면 1, 아니면 0을 반환한다.5. clear() : 강제 초기화, 비어있는지 여부 확인6. isFull() : 가득 찼는지 여부 확인7. size(): 스택에 저장되어 있는 데이터 개수 반환  **파이썬에서 스택 사용할 때, 라이브러리 필요없음.예시stack = []# 스택에 데이터 삽입stack.append(1)stack...