본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶
[Binary Tree] 이진트리 (1) - 삽입, 삭제 Binary Tree 이진트리 무슨 코드든 차분히, 차근차근 한단계씩 밟고 지나가면 이해할 수 있다. BinaryTree()를 하면, head = Node(None) 다음과 같은 아이들이 생성된다. 1. add: val의 값을 비교해 left, right에 넣어주기 2. search: 있으면 True, 없으면 False 3. remove: 복잡복잡한듯 값이 head.val이면 자식 (left, right)를 조사하고 해당 조건에 따라 처리 아니면, head.val의 값과 비교하여 작으면 left, 크면 right로 가서 반복처리 class Node: def __init__(self, item): self.val = item self.left = None self.right = None class Bina.. 2018. 9. 24.
[heap sort] 힙 힙 힙! Heap tree parent 와 child로 이루어진 구조 heapify: 트리를 heap 트리로 바꾸는 과정 siftdown: (max) heap에서는 parent가 child보다 크면 된다 1단계만 실제로 보자면 root(6)의 right child(4)에서는 child와 비교헀을때, 8이 가장 크기 때문에 8과 4를 swap해준다. 이러한 과정을 거치면 아래와 같이 된다. [6, 2, 4, 9, 7, 5, 8] [6, 2, 8, 0, 7, 5, 4] [6, 9, 8, 2, 7, 5, 4] [9, 7, 7, 2, 6, 5, 4] (max) heap에서는 가장 큰 값만 뽑으면 되기 때문에, 8, 5, 4의 경우 더이상 순회 하지 않는다. def heapsort(a): def swap(a, i, j):.. 2018. 9. 24.
[Linked list] Linked list 코드 linked list linked list는 이런 노드가 연결 되어있다. class Node: def __init__(self, item): self.val = item self.next = None class LinkedList: def __init__(self, item): self.head = Node(item) def add(self, item): cur = self.head while cur.next != None: cur = cur.next cur.next = Node(item) def remove(self, item): if self.head.val == item: self.head = self.head.next else: cur = self.head while cur.next != None.. 2018. 9. 24.
[큐와 스택] queue와 stack Queue class Queue: def __init__(self): self.items = [] def enqueue(self, item): self.items.insert(0, item) def dequeue(self): self.items.pop() def print(self): print(self.items) def size(self): return len(self.items) def clear(self): return self.items == []​ FIFO 구조로, 롤에서도 등장한다(?) 큐잡혔다!!!!!! "먼저 줄을 선 사람이 먼저 나가도록 하는 것" 만약에 먼저 큐를 돌렸는데, 다른사람이 잡힌다고 해봐라 얼마나 열받는가 ㅂㄷㅂㄷ.. queue는 enqueue와 dequeue를 이용하여 구.. 2018. 9. 24.
[Last day on earth] 나무 귀신 ​너어어어~무 궁금해서 결국 해봤다.석탄과 나무판자 석탄은 나무나 나무판자를 태우면되는데, 않이 나무 판자..를 태우면 석탄2개가 생성된다. 무튼 석탄이랑 나무판자를 가지고 너무궁금해서 똑같은 철광석 20개를 제작해보았다. ​철 광석 6개동안, 제 3개 / 나무 판자 7개 정도를 소비한다 약 2배정도 더 소비하는듯? 결국 석탄으로 하는게 시간은 걸리지만(석탄을 만드는데), 석탄이 있다면 석탄을 만들어 석탄으로 태우는게 가장 나아보인다.​ 지금은 나무판자 5개를나무판자(5개), 나무(5개)로 석탄이 몇개나 생성되는지 확인해봐야겠다. 후, 요새 그냥 수컷밖에안나온다 암컷 주세요.. 2018. 9. 22.
[League of Legends] 2018 Spring 경기 (3) - 밴픽된 챔프들 큰일이다 큰일 심심해서 하는 거에 시간 투자를 많이 하고 있다. 오늘은 밴픽에 대하여 살펴볼건데 2018년 Srping NA LCS경기 (39건)에 관하여만 살펴보았다. 탑같은 경우 총 10명(Impact, Solo, Darshan, Licorice, zig, hauntzer, Flame, Huni, Lourlo, Ssumday) 원딜의 경우 총 12명(Deftly, Doublelift, Sneanky, Piglet, Altec, Zven, Wildturtle, Rikara, Arrow, Cody sum, Apollo, Stixxay) 정글도 총 12명 (Contractx, Dardoch, MikeYeung, Reignover, Dandy, Xmithie, AnDa, Santorin, Svenskeren.. 2018. 9. 19.
[League of Legends] 2018 Spring 경기 (2) - 챔프 등장 횟수 및 승률 심심해서 하는 League of Legends 분석 22018 Spring 경기 (1)의 데이터를 이용해여 오늘은 각 포지션별, 챔프 픽률을 보려고 한다. 1. 정글총 21개의 챔프 min25% 50% 75% max mean 1 3 1117132 23 자르반과 세주아니가 압도!적으로 등장한다. top5 까지 주요 대회에서 하는 캐릭으로 보면 되지않을까... 전체 등장했던 챔프에 대한, 승률은 아래그림과 같고 50%(11)보다 미만인 애들을 합쳐서 살펴 보면 1. 자르반(27.39%), 2. 세주아니(18.26%), 3. 카직스(10.17%), 4. 자크(9.75%), 5. 그라가스(8.92%) 순으로 많이 등장 한다.승률은 잭스가 75%로 가장높고, 그라가스와 자크, 렉사이, 엘리스, 세주아니가 50%가.. 2018. 9. 18.
[League of Legends] 2018 Spring 경기 (1) - 진영별 승리 심심해서 하는 League of Legends 분석 사실 롤 경기는 잘 안본다.. 롤은 하는게 더 재밌더라, 보면 잠오고 ㅎㅎ.ㅎ..ㅎ.ㅎ (그래서 힘들었당) 일단 데이터는 2018년, Spring Season 것만 가져왔으며, Kaggle에 올라와있어서 가져왔다. League of legends(100 vs TSM 예시) 공식 홈페이지에도 올라와 있긴 하다. 결론적으로 보면 다음과 같은 결과가 다왔다. code는 pass하고.. data에 대해서 간단한 설명 1. 총 241게임의 데이터 2. 80팀이 참가 3. Spring Season 3-1. Season 171건, Promotion 70건 4. 제일 긴 play: 95분 / 짧은 play:24분 / 평균 play: 약 37분 5. coloum nam.. 2018. 9. 17.
[python] jupyter notebook 코드를 tistory에 올리는 법. tistory에 jupyter note HTML을 올리고 싶다면, 외부컨텐츠를 클릭하여, html 소스코드를 넣으면된다. 글 안에 html 파일 내용이 다 들어가게 하기 위해서는 아래와 같이 jupyter notebook에 실행시키면 된다. from IPython.core.display import display, HTML display(HTML("")) 따로, font-family, size등 style 쪽에 가면 수정도 가능하다.. 2018. 9. 16.