본문 바로가기

반응형

Legacy(~18.10)

(45)
[Data Structure] Tree - Linked List로 표현하기 Tree를 Linked List로 표현하기 리스트로 트리를 표현한 방법과 다르게 위의 방법은 Node와 Reference를 이용한다. -> 즉 Linked List로 표현중요한 것은 Left, right는 다른 Binary Tree instance를 참조한다는 점이다.예를들면, 우리가 새로운 Left Child를 트리에 추가 할 때, 우리는 또다른 BinaryTree instance를 생성하고, root의 self.leftchild를 새 tree의 Reference로 지정한다.리스트로 tree를 만들었을 때와 마찬가지로 Left Child를 추가할 때, Left Child가 없으면 그냥 root에 node를 넣으면 되고 만약 Left Child가 있다면 원래 Node를 한 레벨 낮추고 새 Node ins..
[Data Structure] Tree - 기본 정의 및 용어 && Python 리스트로 트리 표현하기 Tree목적tree 자료구조가 무엇인지 이해하고, 어떻게 사용되는지 이해한다.어떻게 tree가 map 자료구조로 실행되는지 본다.tree를 리스트를 통해 실행한다.클래스와 레퍼런스를 이용해서 tree르 실행하여본다.재귀적 자료 구조로서 tree를 실행한다.힙을 이용하여서, Priority Queue로 실행하여 본다. 특징tree 자료구조는 root와 그것의 leaves를 가지고 있다.tree의 특성계층화한 node의 children은 또 다른 node의 children과 독립적이다.각각의 node는 unique 하다.subtree를 더 아래 level의 계층에 영향을 주지 않고, tree의 다른 position으로 옮길 수 있다. 용어Nodetree의 메인 파트이다. 추가적인 정보를 가지는데, paylo..
[Data Structure] Hashing - 이론 HahsingSearch 알고리즘과 관련해서, 정렬이 되어있을 때, binary Search로 O(logn)의 성능을 낼 수 있다.이에 반해서, Hashing은 최대 O(1)의 성능을 낼 수 있다.Hash table은 Slot으로 이루어져있는데, 각각Slot의 이름은 숫자로 되어있고, 0부터 시작한다.이를 통해서 쉽게 item을 찾을 수 있다.item과slot을 맵핑하는 방법으로 Hash Function을 이용한다. Hash Function은 Slot name의 범위내의 int 값을 리턴한다. 위와같이 Hash Table이 만들어 지면, search는 O(1)에 할 수 있다.그러나, Hash Function의 결과 값이 같으면 한 Slot에 여러 Item이 들어 가게 되는데 이것을 Collision 이라..
[Data Structure] Deque - 이론 && ADT Deque양쪽 끝에서(rear, front) 삽입, 삭제를 모두 수행할 수 있다.Deque가 Stack과 Queue의 특징을 모두 취할 수 있어도 LIFO, FIFO 순서를 정하도록 요구하지는 않는다.전적으로 Deque를 어떻게 사용할지는 사용자에 선택에 달려 있다. class Deque: def __init__(self): ''' 데큐를 리스트로 초기화한다. ''' self.deque = [] ​ def isEmpty(self): ''' 데큐의 길이가 0인지를 확인한다. ''' return len(self.deque) == 0 ​ def addFront(self, item): ''' 데큐의 Front에 item을 추가한다. ''' self.deque.append(item) ​ def addRear(se..
[Data Structure] Queue - 이론 && ADT QueueQueue는 rear로 item이 추가되고, front로 item이 삭제된다.이러한 특징을 First In, First Out - FIFO라고 한다.중간에 점프를 뛸 수 없고 front로 갈 때까지 순서대로 기다려야만 한다.Queue의 예로 프린터에서 프린트 하는 것도 있고OS에서 스케쥴링, 키보드 타이핑치는것 등등도 Queue의 예로 볼 수 있다. class Queue: def __init__(self): ''' 리스트를 이용해서 큐를 초기화한다. ''' self.queue = [] ​ def isEmpty(self): ''' 큐의 길이가 0인지를 확인한다. ''' return len(self.queue) == 0 ​ def enqueue(self, item): ''' 큐의 rear에 item..
[Data Structure] Stack - 이론 && ADT Stack - 이론 && ADT스택은 새로운 아이템의 추가와 존재하는 아이템의 삭제가 동일한 위치에서 발생한다.가장 최근에 추가된 아이템은 가장 먼저 제거 될 수 있다. 이것을 Last In First Out - LIFO 라고 한다.실생활에서 스택의 예시를 많이 찾아볼 수 있다.스택은 아이템의 삽입 순서가 제거 순서와 반대이다.class Stack: def __init__(self): ''' 스택을 초기화 - 빈 리스트로 초기화 한다. ''' self.stack = [] def isEmpty(self): ''' 스택의 길이가 0 인지를 확인한다. ''' return len(self.stack) == 0 def push(self, item): ''' 스택의 마지막에 item을 추가한다. ''' self.s..
[Tutorial] Django 공식튜토리얼 - 모델생성과 관리자 페이지 Djang 공식 홈페이지에 나와 있는 튜토리얼 이다.이 튜토리얼을 처음 설치 부터 배포 까지 내 공부 겸 요약 겸 나중에 참고 할 겸 작성해보려고 한다.튜토리얼을 그냥 똑같이 따라하면 재미 없으니까, 내 입맛에 따라서, 생략하는 부분도 있을 것이고, 더 추가되는 내용도 있을 것이다.자세한 설명이 필요한 부분은 따로 해당 주제에 대해서 블로그 글을 쓰는 것으로 하고,튜토리얼에서는 최대한 기본적인 것들과 실행에 중점을 두고 한다.Index개발환경 구축Part1 - 프로젝트 생성과 간단한 뷰 만들기 - GithubPart2 - 모델 생성 과 관리자 페이지 - GithubPart3 - 뷰와 템플릿 다루기 - 준비 중Part4 - Django 폼과 제네릭뷰 사용 - 준비 중Part5 - 테스트 - 준비 중Part..
[Tutorials] Django공식튜토리얼 - 프로젝트 생성과 간단한 뷰 만들기 Djang 공식 홈페이지에 나와 있는 튜토리얼 이다.이 튜토리얼을 처음 설치 부터 배포 까지 내 공부 겸 요약 겸 나중에 참고 할 겸 작성해보려고 한다.튜토리얼을 그냥 똑같이 따라하면 재미 없으니까, 내 입맛에 따라서, 생략하는 부분도 있을 것이고, 더 추가되는 내용도 있을 것이다.자세한 설명이 필요한 부분은 따로 해당 주제에 대해서 블로그 글을 쓰는 것으로 하고,튜토리얼에서는 최대한 기본적인 것들과 실행에 중점을 두고 한다.Index개발환경 구축Part1 - 프로젝트 생성과 간단한 뷰 만들기 - GithubPart2 - 모델 생성 과 관리자 페이지 - 준비 중Part3 - 뷰와 템플릿 다루기 - 준비 중Part4 - Django 폼과 제네릭뷰 사용 - 준비 중Part5 - 테스트 - 준비 중Part6 ..

반응형