알고리즘(39)
-
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 11회차 미션
대표적인 데이터 구조7 : 트리 1. 트리 구조 A. 트리: NODE와 BRANCH를 이용해 사이클을 이루지 않도록 구성한 데이터 구조 B. 실제로 어디에 많이 사용되는가 트리 중 이진 트리 형태 구조 & 탐색 알고리즘 구현을 위해 많이 사용됨 2. 알아야 하는 용어 A. NODE: 트리에서 데이터를 저장하는 기본요소 B. ROOT NODE: 트리 맨 위에 있는 노드 C. LEVEL: 최상위 노드를 LEVEL 0으로 했을 때 하위 BRANCH로 연결된 노드의 깊이 D. PARENT NODE: 어떤 노드의 다음 레벨에 연결된 노드 E. CHILD NODE: 어떤 노드의 상위 레벨에 연결된 노드 F. LEAF NODE ( TERMINAL NODE) : CHILD NODE가 하나도 없는 노드 G. SILBLI..
2020.10.29 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 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