분류 전체보기
-
[Python Algorithms] 트리(Tree) 2 : 순회 알고리즘Computer Science/Algorithms 2020. 11. 26. 09:52
트리에서는 네 가지 순회 알고리즘을 가진다. 1) 전위 순회(Pre-Order Traverse) 2) 중위 순회(In-Order Traverse) 3) 후위 순회(Post-Order Traverse) 4) 단계 순위 순회(Level-Order Traverse) 1. 전위 순회 A -> B -> D -> E -> C -> F -> G 2. 중위 순회 D -> B -> E -> A -> F -> C -> G 3. 후위 순회 D -> E -> B -> F -> G -> C -> A 4. 단계 순위 순회 A -> B -> C -> D -> E -> F -> G 5. 트리 순회 알고리즘 코드 트리 클래스 구조 코드 eusun0830.tistory.com/45?category=718944 [Python Algori..
-
[Python Algorithms] 트리(Tree) 1Computer Science/Algorithms 2020. 11. 25. 11:17
트리 구조는 연결 리스트와 비슷하게 노드와 링크를 이용하지만 동작 구조는 매우 다르다. 트리는 그래프의 일종이며 서로 다른 두 노드를 잇는 링크가 하나뿐인 그래프를 트리라고 표현한다. 1. 트리 구조 트리구조에서 가장 상위에 있는 노드를 루트(root)노드라 한다. 또한 어떤 노드보다 상위에 있는 노드를 부모 노드(parent node)라 하고 하위에 있는 노드를 자식 노드(child node)라고 표현한다. 같은 부모를 두고 있는 경우에는 형제 노드(sibling node)라 부른다. 최하위에 있는 노드들은 리프 노드(leaf node)가 된다. 트리 구조에는 레벨(level)과 높이(height)가 존재하는데 레벨은 루트 노드에서부터 특정 노드까지 찾아오는데 방문한 총 노드의 수를 말하고 높이는 트리..
-
기계식 뺨치는 사무실 멤브레인 키보드 LANGTUReview/Products 2020. 11. 24. 10:32
최근 사무실에서 쓰는 키보드가 너무 불편해서 집에 있던 기계식 키보드를 가지고 갔었는데 적축 키보드를 씀에도 불구하고 소리가 너무 커서(청축이 섞여있음..) 직장 동료들에게 좀 미안한 마음이 있었다.. ㅋㅋㅋ 그래서 새로 멤브레인 키보드를 구입했다. 구입 조건은 까다롭지 않게 기계식 키보드가 아닌 멤브레인이여야 하고 누를 때 너무 가볍지고 무겁지도(?) 않아야 하고 장시간 사용했을 때 손목이 아프지 않게 높지 않은 키보드여야 했다. 쓰고보니 조건이 굉장히 까다로워 보이네... 인터넷 서치를 하던 중 모양이 사무실에서 쓰던 키보드와 비슷해보이는 키보드가 있어서 살펴보았는데 후기도 나쁘지 않고 가격도 나쁘지 않아 구입해보게 되었다. 이름은 LANGTU라고 되어있고 굉장히 중국 느낌이 강하게 나지만 깔끔하고 ..
-
[OpenCV 튜토리얼] 5. 관심영역 ROI(Region Of Interest)Python/OpenCV 2020. 11. 24. 09:55
ROI는 뜻 그대로 이미지나 영상 내에서 내가 관심있는 부분을 뜻한다. 이미지 상의 특정 오브젝트나 특이점을 찾는 것을 목표로 할 때 쓴다. (비슷한 용어로는 COI(Channel Of Interest)라는 관심 채널이 있다.) 이미지나 영상을 처리할 때 관심영역(ROI)를 지정하는 것은 매우 중요하다. 관심영역을 지정하는 것은 불필요한 영역에 대한 이미지 처리를 방지할 수 있어 여러 리소스를 절약할 수 있다. OpenCV에서는 selectROI 함수와 selectROIs 함수를 이용해 관심영역을 지정할 수 있다. 1. ROI의 평균값으로 이미지 나타내기 import cv2 import numpy as np src = cv2.imread("C:\\Users\\user\\Desktop\\img.jpg") ..
-
[if(kakao)2020 카카오 컨퍼런스] 기술 session: 카카오와 MongoDBReview/Conferences 2020. 11. 23. 10:00
2020년 11월 18일 ~ 11월 20일 동안 카카오는 if(kakao)2020이라는 컨퍼런스를 열었다. 작년까지는 기술 컨퍼런스로만 개최하였었는데 올해는 코로나 영향으로 온라인으로 개최하게 되면서 서비스, 비지니스 등의 다양한 분야의 세션들이 준비되었다. 훨씬 다양하고 온라인으로 간편하게 볼 수 있어서 많은 사람들에게 큰 도움이 됐을 것 같다 ㅎㅎ 나 역시도 이번 컨퍼런스에 준비된 기술 세션을 보고 많이 놀라고 감탄했다..ㅋㅋ 일단 이렇게까지 말해줘도 되나 싶을 정도로 시스템 구조를 자세히 설명해주고 왜 그렇게 구현했는지에 대한 이유도 충분히 이해가게 설명해주었다. 알려줘도 누가 만드느냐에 따라 달라진다는 건가... 아직 전체를 다 들어보진 못했는데 들었던 기술 세션 중에 좋았던 세션들을 정리해보려고..
-
[Python Algorithms] 큐(Queue)Computer Science/Algorithms 2020. 11. 19. 16:58
큐(Queue)는 스택과 함께 많이 사용되는 기본 자료구조이다. 스택이 LIFO(Last In First Out) 방식이라면 큐는 FIFO(First In First Out) 선입선출 방식이다. 큐라는 이름에서 알 수 있듯이 줄을 선 사람들의 모습을 생각하면 이해하기 편하다. 줄을 선 사람들은 줄을 선 순서대로 입장하거나 물건을 살 수 있기 때문에 선입선출의 구조라고 볼 수 있다. 큐에서 줄을 서는 것과 같은 역할을 풋(put)이라 하고 앞에서부터 입장하는 것과 같은 역학을 겟(get)이라 한다. 큐는 스택과 달리 배열을 사용하는 것이 더 유용하다. def put(item): queue.append(item) def get(): return queue.pop(0) if __name__ == '__main..
-
[Web protocols 정리하기] 3. SSL, TelnetWeb/Protocol 2020. 11. 19. 16:44
웹 프로토콜들 추가 정리..! 6. SSL or TLS(Secure Sockets Layer or Transport Layer Security) 전송 계층 보안 SSL은 네트워크 통신 보안을 제공하기 위해 설계된 암호 규약이다. 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보해준다. 넷스케이프사에서 만든 SSL을 표준으로 한다. SSL(TLS)은 세 단계 절차를 거친다. 1. 지원 가능한 알고리즘 교환 2. 키 교환, 인증 3. 대칭키 암호로 암호화하고 메세지 인증 알고리즘 종류 키 교환: RSA, Diffie-Hellman, ECDH 등 인증: RSA, DSA, ECDSA 대칭키 암호: RC4, AES, DES 등 해시 함수: MD5, SHA (SSL) or HMAC-MD5, HMAC-SHA..
-
[Python Algorithms] 스택(Stack)Computer Science/Algorithms 2020. 11. 18. 08:45
스택(Stack)은 선형 구조의 알고리즘으로 LIFO(Last In First Out) 후입선출의 구조를 가지고 있다. 쉽게 말하면 그릇이 쌓여있는 모습을 생각하면 새로 쌓을 그릇은 맨 위에 쌓이고 그 중 사용할 그릇은 맨 위에 그릇을 사용하는 모습을 생각하면 이해하기 쉽다. 스택에서 자료를 넣는 것을 푸쉬(push)라 하고, 자료를 꺼내는 것을 팝(pop)이라 한다. 이런 선형구조를 이용해 리스트의 끝에서만 접근이 일어나기 때문에 제한적인 접근이 가능하다. 파이썬에서는 스택의 기본 구조를 리스트(list)로 사용한다. 리스트에는 리스트 멤버 함수인 append, push, pop이 있어 코드 구현이 매우 용이하다. def push(item): stack.append(item) def pop(): ret..