알고리즘(38)
-
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 10회차 미션
6.2 Linear Probing 기법 -> 폐쇄 해슁 또는 Close Hashing 기법 중 하나: 해쉬 테이블 저장공간 안에서 충돌 문제를 해결 -> 충돌이 일어나면 해당 hash address의 다음 address부터 맨 처음 나오는 빈공간에 저장 - 저장공간 활용도를 높이기 위한 기법 연습3: 연습1의 해쉬 테이블 코드에 Linear Probling 기법으로 충돌해결 코드를 추가 hash_table = list([0 for i in range(8)]) def get_key(data): return hash(data) def hash_function(key): return key % 8 def save_data(data, value): index_key = get_key(data) hash_addr..
2020.10.28 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 9회차 미션
3. 간단한 해쉬의 예 3.1 hash table 만들기 hash_table = list ( [ i for i in range(10)]) hash_table 3.2 이번엔 초간단 해쉬함수 만들기 다양한 해쉬 함수 고안 기법이 있다 가장 간단한 방식이 Division 법 def hash_func(key): return key%5 3.3 해쉬 테이블에 저장 데이터에 따라 필요시 key 생성 방법 정의 필요 data1 = ‘Andy’ data2 = ‘Dave’ data3 = ‘Trump’ data4 = ‘Anthor’ ## ord( ) : 문자의 ASCII 코드 리턴 print( ord ( data1[ 0 ] ), ord ( data2[ 0 ] ) , ord ( data3[ 0 ] )) print( ord (..
2020.10.27 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 8회차 미션
3. 대문자 O 표기법 빅 오표기법 또는 Big-O 표기법이라고도 부름 O (입력) ->입력 n에 따라 결정되는 시간 복잡도 함수 O(1) ,O(logn), O(n), O(nlogn), O(n2 ) O(2n ) O(n!) 으로 표기 ->입력 n의 크기에 따라 기하급수적으로 시간 복잡도가 늘어날 수 있다 O(1) 10: print(n) - n에 따라 n번 , n+10번 또는 3n +10 번등 실행 :..
2020.10.26 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 6 회차 미션
링크드 리스트 장단점 장점 --> 미리 데이터 공간을 할당하지 않아도 됨 단점 --> 배열은 두개의 데이터를 저장할 공간만 가지면 되는데 링크드 리스트는 각 데이터마다 다음 노드를 가리킬 주소 (포인터)를 별도로 가지고 있어야 한다 – 저장공간 효율 높지 않아 --> 배열은 인덱스 번호가 있어 바로 인덱스 번호로 값을 찾을 수 있으나 링크드 리스트는 연결 정보를 찾는 시간이 필요해 접근 속도가 느려 --> 중간 데이터를 삭제하거나 연결된 데이터 중간에 추가적으로 노드를 추가할 경우 주소를 변경해야 하는 재구성 작업 필요 링크드 리스트와 복잡한 기능1 =>링크드 리스트 데이터 사이에 데이터 추가 node = head while node.next: print(node.data) node = node.next..
2020.10.24 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 5 회차 미션
10. 스택 -> 데이터를 제한적으로 접근할 수 있는 구조 = 한쪽 끝에서만 자료를 넣어거나 뺄 수 있는 구조 -> 가장 나중에 쌓은 데이터를 가장 먼저 뺄 수 있는 데이터 구조 = 큐 : FIFO 정책 = 스택은 LIFO 정책 A. 스택구조 -> 스택은 LIFO 또는 FILO 데이터 관리 방식을 따른다 LIFO = Last In, First Out = 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 FILO = First In, Last Out = 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 -> 대표적인 스텍 활용 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 -> 주요 기능 push( ) : 데이터를 스택에 넣기 pop( ) : 데이터를 스택에서 꺼내기 B. 스택 구조와 프로세스..
2020.10.23 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 3 회차 미션
06. 배열 배열이란 - Array -> 데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 -> python 에서는 리스트 타입으로 배열 기능을 제공 배열은 왜 필요할까 -> 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 & 순차적으로 저장 -> 하나의 연결된 데이터를 저장해 각각의 공간에 대해 인덱스를 매겨 바로 찾을 수 있게끔 하기 위해 배열의 장점 & 단점 -> 장점 빠른 접근 가능 첫 데이터의 위치에서 상대적인 위치로 데이터 접근 가능 by 인덱스 번호 -> 단점 데이터 추가와 삭제가 어렵다 미리 최대 길이를 지정해야 한다 07. python과 배열 파이썬에서는 리스트로 배열 구현이 가능 A. 1차원 배열 : 리스트로 구현시 data_list = [ 1, ,2, 3, 4,..
2020.10.21