본문 바로가기

Python

(14)
정렬 버블정렬def bubble_sort(arr): for i in range(len(arr)-1): for j in range(len(arr)-1-i): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arrbubble_sort([5,4,3,2,1])[1, 2, 3, 4, 5]퀵정렬def quick_sort(arr): if len(arr) pivot] middle = [x for x in arr if x == pivot] result = quick_sort(left) + middle + quick_sort(right) return resultquic..
해시 테이블 해시 테이블 작동 원리 - 데이터 저장 : 키(key)를 해시 함수에 입력하여 해시값을 계산한다. 이 해시값은 해시 테이블의 인덱스로 사용되어 해당 인덱스에 값이 저장된다. - 데이터 검색 : 검색하려는 해시키를 해시함수에 입력하여 해시값을 계산한다. 이 해시값은 해시테이블에서 해당 데이터가 저장된 위치를 가르키므로 효율적인 검색이 가능하다.   해시테이블 구현class HashTable(): def __init__(self, length = 5): self.size = length self.table = [[] for _ in range(self.size)] def _hash(self, key): # hash값 만들기 res = sum([ord(s) fo..
노드 클래스 정의class Node: def __init__(self, data): self.data = data self.next = None  큐 클래스 정의class Queue: def __init__(self): self.front = None # 출구 self.rear = None # 입구 def enqueue(self, data): if self.front is None: self.front = self.rear = Node(data) else: node = Node(data) self.rear.next = node self...
스택 노드 클래스 정의class Node: def __init__(self, data): self.data = data self.next = None  스택 클래스 정의class Stack: def __init__(self): self.top = None def push(self, data): if self.top is None: self.top = Node(data) else: node = Node(data) node.next = self.top self.top = node def pop(self): if self.top is None..
연결 리스트 연결 리스트는 동적인 선형 자료구조로서, 데이터가 '노드(node)' 단위로 저장되고 서로 연결되어있다. 노드 클래스 정의class Node: def __init(self, data): self.data = data self.next = None  노드 생성a = Node('a') # 첫번째 노드 'a' 생성a.data # aa.next = Node('b') # 두번째 노드 'b' 생성a.next.data # ba.next.next = Node('c') # 두번째 노드 'c' 생성  LinkedList 클래스 정의 (연결 리스트) 및 메소드 구현appendleft(x) : 연결 리스트의 처음에 x를 추가append(x): 연결 리스트의 끝에 x를 추가popleft(): 연결..
배열과 리스트 문제)제시된 합을 가진 부분 배열 찾기방법1. 중첩 반복문을 사용 O(n^2)def find_subarray_with_sum(arr, s): n = len(arr) for i in range(n): current_sum = 0 for j in range(i, n): current_sum += arr[j] if current_sum == s: return [i + 1, j + 1] # 인덱스 기준이 1이므로 +1을 해줌 return -1print(find_subarray_with_sum([1, 2, 3, 7, 5], 12)) # 출력: [2, 4]print(find_subarray_with_sum..