코딩일지/자료구조, 알고리즘 4

자료구조, 알고리즘 4주차 정리

오늘 배울 것 트리, 힙 DFS, BFS Dynamic Programming 트리 트리란? - 뿌리와 가지로 구성되어 거꾸로 세워놓은 나무처럼 보이는 계층형 비선형 자료 구조. 앞서 보인 큐(Queue), 스택(Stack) 은 자료구조에서 선형 구조라고 합니다. 선형 구조란 자료를 구성하고 있는 데이터들이 순차적으로 나열시킨 형태를 의미합니다. 이번에 배울 트리는 바로 비선형 구조입니다! 비선형 구조는 선형구조와는 다르게 데이터가 계층적 혹은 망으로 구성되어있습니다. 선형구조와 비선형구조의 차이점은 형태뿐만 아니라 용도에서도 차이점이 많습니다! 선형구조는 자료를 저장하고 꺼내는 것에 초점이 맞춰져 있고, 비선형구조는 표현에 초점이 맞춰져 있습니다. * 아래 폴더 구조가 대표적인 트리의 형태입니다! 트리는..

자료구조, 알고리즘 3주차 정리

오늘 배울 것 정렬 스택 큐 해쉬 정렬 정렬 - 알고리즘의 굉장히 중요한 주제로, 데이터를 순서대로 나열하는 방법 정렬 - 1 버블 정렬 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하는 방식 작은 숫자, 큰 숫자 순서로 있으면 내버려두고 큰 숫자, 작은 숫자 순서로 있으면 둘의 위치를 변경한다. [4, 6, 2, 9, 1] # 정렬되지 않은 배열 1단계 : [4, 6, 2, 9, 1] 4와 6을 비교합니다! 4 2 이므로 둘을 변경합니다! [4, 2, 6, 9, 1] 이렇게요..

자료구조, 알고리즘 2주차 정리

오늘 배울것 어레이(Array)와 링크드 리스트(Linked List) 클래스 이진 탐색과 재귀 함수 어레이(Array)와 링크드 리스트(Linked List) 1. 어레이(Array, 배열) 배열은 크기가 정해진 데이터의 공간이다. 한 번 정해지면 바꿀 수 없다. 배열은 각 원소에 즉시 접근할 수 있다. 여기서, 원소의 순서는 0부터 시작하고 이를 인덱스라고 부른다. 이 때, 즉시 접근 가능하다는 말은 상수 시간 내에 접근할 수 있음을 의미한다. 즉, O(1) 내에 접근할 수 있다고 말할 수 있다. 원소를 새로 추가하려면, 새로운 공간을 할당해야 하므로 매우 비효율적인 자료구조. 2. 링크드 리스트(Linked List) 리스트는 크기가 정해지지 않은 데이터의 공간이다. 연결 고리로 이어주기만 하면, ..

자료구조, 알고리즘 1주차 정리

알고리즘이란? 알고리즘 - 어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합. 여러 단계의 유한 집합으로 구성되는데, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다. [표준국어대사전] 어떤 문제가 있을때, 그것을 해결하기 위한 여러 동작들의 모임 시간 복잡도 판단하기 시간 복잡도 - 입력값과 문제를 해결하는 데 걸리는 시간과의 상관관계 최댓값 찾기 알고리즘의 시간 복잡도 판단해보기 첫 번째 방법 input = [3, 5, 6, 1, 2, 4] def find_max_num(array): for num in array: for compare_num in array: if num < compare_num: break else: return num resul..