자료구조 - 힙(heap)
·
이론공부
힙(heap) : 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이전 트리 ※ 완전 이전 트리 : 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n) 이 걸림 이에 반해, 힙에 데이터를 넣고, 최대값과 최소값을 찾으면, 𝑂(𝑙𝑜𝑔𝑛)이 걸림 우선순위 큐와 같이 최대값 또는 최소값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현 등에 활용됨 □ 힙의 구조 힙은 최대값을 구하기 위한 구조 (최대 힙, Max Heap) 와, 최소값을 구하기 위한 구조 (최소 힙, Min Heap) 로 분류할 수 있음 힙은 다음과 같이 두 가지 조건을 가지고 있는 자료구조임 각 노드의 값은 해당 노드의 자식 노드가 가진 값보다..
자료구조 - 트리(tree)
·
이론공부
트리(tree) : Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조 → 트리 중 이진 트리(Binary Tree) 형태의 구조로, 탐색(검색) 알고리즘 구현을 위해 많이 사용됨 1-1 알아둘 용어 : Node: 트리에서 데이터를 저장하는 기본 요소 (데이터와 다른 연결된 노드에 대한 Branch 정보 포함) Root Node: 트리 맨 위에 있는 노드 Level: 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node: 어떤 노드의 다음 레벨에 연결된 노드 Child Node: 어떤 노드의 상위 레벨에 연결된 노드 Leaf Node (Terminal Node): Child Node가 하나도 없는 노드 Sibling ..
자료구조 - 해쉬 테이블(hash table)
·
이론공부
해쉬 테이블(hash table) : 키(Key)에 데이터(Value)를 저장하는 데이터 구조 장점 데이터 저장/읽기 속도가 빠르다. (검색 속도가 빠르다.) 해쉬는 키에 대한 데이터가 있는지(중복) 확인이 쉬움 단점 일반적으로 저장공간이 좀더 많이 필요하다. 여러 키에 해당하는 주소가 동일할 경우 충돌을 해결하기 위한 별도 자료구조가 필요함 주요 용도 검색이 많이 필요한 경우 저장, 삭제, 읽기가 빈번한 경우 캐쉬 구현시 (중복 확인이 쉽기 때문) for i in range(10)은 반복문입니다. 이것은 0부터 9까지의 정수를 순회하는 반복문입니다. 이 코드는 각 숫자를 반복하는 데 사용되며, 순회되는 숫자는 변수 i에 할당됩니다. i for i in range(10)은 리스트 컴프리헨션입니다. 이것은..
자료구조 - 알고리즘 복잡도
·
이론공부
알고리즘 복잡도 필요성 : 다양한 알고리즘 중 어느 알고리즘이 더 좋으니를 분석하기 위해, 복잡도를 정의하고 계산함 복잡도 계산항목 - 시간 복잡도 : 알고리즘 실행속도 - 공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈 알고리즘 성능 표기법 Big O (빅-오) 표기법: O(N) 알고리즘 최악의 실행 시간을 표기 가장 많이/일반적으로 사용함 아무리 최악의 상황이라도, 이정도의 성능은 보장한다는 의미이기 때문 Ω (오메가) 표기법: Ω(N) 오메가 표기법은 알고리즘 최상의 실행 시간을 표기 Θ (세타) 표기법: Θ(N) 오메가 표기법은 알고리즘 평균 실행 시간을 표기 ※ 시간 복잡도 계산은 반복문이 핵심 요소임을 인지하고, 계산 표기는 최상, 평균, 최악 중, 최악의 시간인 Big-O 표기법을 중심으로..
자료구조 - 큐(queue), 스택(stack), 링크드르시트(linked list)
·
이론공부
강의 사이트 : 패스트캠퍼스 온라인강의 시작 전 준비간단한 문제를 스스로 코드로 만들수 있어야함(ex 구구단)최소 10줄의 코드는 스스로 작성할 수 있어야 함파이썬 기본 문법에 익숙해져야함파이썬 기초 (문제 풀이) 1~4 (www.fun-coding.org)자료구조란? → 배열, 스택, 큐, 링크드 리스트, 해쉬 테이블, 힙 등대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적을 데이터를 구조화해야 함→ 데이터 구조 사용에 따라, 코드 효율이 달라짐ex) 우편번호 - 5자리 중 앞 3자리는 시, 군, 자치구, 뒤 2자리는 일련번호로 구성      학생관리 - 학년, 반, 번호를 부여, 학생부 관리알고리즘이란?어떤 문제를..