내일배움캠프/알고리즘4 알고리즘 4주차 트리 뿌리와 가지로 구성되어 거꾸로 세워놓은 나무처럼 보이는 계층형 비선형 자료 구조 폴더 구조가 대표적인 트리의 형태이다 트리에서 사용되는 용어들 Node : 트리에서 데이터를 저장하는 기본 요소 Root Node : 트리 맨 위에 있는 노드 Level : 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node : 어떤 노드의 상위 레벨에 연결된 노드 Child Node : 어떤 노드의 하위 레벨에 연결된 노드 Leaf Node(Terminal Node) : Child Node가 하나도 없는 노드 Sibling : 동일한 Parent Node를 가진 노드 Depth : 트리에서 Node가 가질 수 있는 최대 Level 트리의 종류 이진트리(Bi.. 2022. 11. 28. 알고리즘 3주차 정렬 참고 블로그 https://coding-factory.tistory.com/615 [Algorithm] 각 정렬의 특징 및 장단점 & 시간복잡도 정렬 별 특징 선택정렬 (Selection Sort) 선택정렬은 앞에서부터 차례대로 정렬하는 방법입니다. 먼저 주어진 리스트 중에 최소값을 찾고 그 값을 맨 앞에 위치한 값과 교체하는 방식으로 진행하는 coding-factory.tistory.com Tip 두 변수의 값을 교체하는 방법 a, b = b, a 버블정렬 예시 input = [4, 6, 2, 9, 1] def bubble_sort(array): n = len(array) for i in range(n): for j in range(n - i - 1): if array[j] > array[j + .. 2022. 11. 24. 알고리즘 2주차 배열(Array) 같은 타입의 변수들로 이루어진 유한 집합 링크드 리스트(Linked List) - Node : 데이터와 다음 데이터를 가리키는 주소(포인터)로 이루어져 있다. - Pointer : 각 노드에서 다음 데이터를 가리키는 주소값을 가진다. - Head : 링크드리스트에서 가장 시작점인 데이터를 의미한다. - Tail : 링크드리스트에서 가장 마지막 데이터를 의미 - Next=None(또는 Null) : 다음 데이터가 없을 경우 포인터의 주소값은 None(또는 Null)이다. 링크드 리스트의 장단점 1) 장점 - 배열은 미리 데이터 공간을 할당해야 하지만 링크드리스트는 미리 할당할 필요가 없다.(유동적으로 데이터 추가,삭제 가능) - 링크드리스트 수정시 시간복잡도 O(1)을 갖는다. : 항상 .. 2022. 11. 23. 알고리즘 1주차 알고리즘과 친해지기 (1) - 최대값 찾기 Q. 다음과 같이 숫자로 이루어진 배열이 있을 때, 이 배열 내에서 가장 큰 수를 반환하시오. input = [3, 5, 6, 1, 2, 4] def find_max_num(array): # array의 인덱스의 값을 max_num에 할당 max_num = array[0] # num에 array만큼 for문 실행 for num in array: # 할당된 num의 값이 max_num이 된다면 max_num에 num을 할당 if num > max_num: max_num = num return max_num result = find_max_num(input) print(result) 알고리즘과 친해지기 (2) - 최빈값 찾기 Q. 다음과 같은 문자열을 입력받았을 때.. 2022. 11. 23. 이전 1 다음