전체 글 333

연결 리스트(Linked list)와 스택(Stack)

연결 리스트 (Linked List) 다른 추상 자료형을 구현할 때 기반이 되는 기초 선형 자료구조 선형 배열과 비슷하지만, 링크라고 부르는 고리로 원소리들이 연결되는 점이 다르다 장점 원소를 삽입, 삭제하는 것이 쉬움 (빠름) 단점 데이터 구조 표현에 소요되는 저장 공간(메모리) 소요가 크다 k 번째 원소를 찾는데 배열보다 시간이 오래 걸림 (배열은 데이터 원소들이 번호가 있는 칸에 있지만, 연결 리스트는 연결된 형태) 종류 단방향 연결 리스트 (Singly Linked List) 양방향 연결 리스트 (Doubly Linked Lists) 원형 연결 리스트 (Circular Linked List) 양방향 연결 리스트 (Doubly Linked Lists) 노드들이 앞/뒤로 연결되어 있음 (인접한 두 개..

탐색(Search)와 재귀 알고리즘(Reculsive algorithms)

탐색 (Search) 다수의 원소로 이루어진 데이터에서 특정 원소를 찾아내는 작업 선형 탐색 (linear search) or 순차 탐색 (sequential search) - 순차적으로 모든 요소를 탐색 - 배열의 길이에 비례하여 시간이 소모 (Ex_ 1,000,000,000개의 원소 존재 시 최악의 경우 모든 원소를 탐색...) - 성능 = O(n) 이진 탐색 (binary search) (= 이분탐색) - 배열이 정렬되어 있는 경우에만 사용 가능 - 찾고자 하는 원소를 배열의 가운데 원소와 비교하여 값이 크다면 오른쪽, 작다면 왼쪽 - 위의 과정을 반복하여 원하는 값을 추출 - 예제 코드 def binary_search(a, x): lower = 0 upper = len(a) - 1 while lo..

Python_enumerate()

enumerate for 문과 함께 사용하여 인덱스와 결과 값에 동시에 접근하기 위해 사용 순서가 있는 자료형 (list, set, tuple, dictionary, string)에서 사용 가능 사용법 내장함수이기에 enumerate()를 사용 for 문의 in 뒷 부분을 enumerate() 로 한 번 감싸주면 됨 for ex in enumerate([1, 2, 3]): print(ex) #==================== (0, 1) (1, 2) (2, 3) 시작 인덱스 변경 반복문을 사용하다 보면 최초 인덱스를 0이 아닌 1 또는 다른 숫자로 시작해야할 때 사용 이럴 때는 enumerate() 함수 호출 시 start 인자에 시작하고 싶은 숫자를 넘기면 됨 enumerate() 함수는 기본적으로..

728x90