본문 바로가기

반응형

분류 전체보기

(135)
[알고리즘](C언어) 해싱을 이용한 사전의 해시테이블 구현 사전은 위 그림과 같이 리스트, 트리, 해시테이블로 구현할 수 있다. 그리고 구현 형태에 따라 모든 작업에 있어 필수로 수행되는 탐색 기법 또한 달라진다. 사전을 리스트로 구현할 경우, 무순 사전 ADT와 순서 사전 ADT로 구현할 수 있는데, 무순 사전 ADT를 이용해 구현할 경우 선형탐색으로 탐색을 수행할 수 있다. 순서 사전 ADT를 이용해 구현할 경우 이진탐색으로 탐색을 수행할 수 있다. 사전을 트리로 구현할 경우, 탐색 트리로 구현할 수 있다. 이때 트리탐색으로 탐색을 수행할 수 있다. 탐색 트리는 이진탐색트리, AVL 트리 등으로 세분구분된다. 사전을 해시테이블로 구현할 경우, 해싱으로 탐색을 수행할 수 있는데, 해당 포스트에서는 그 방법에 대해 알아보자. 1. 해시테이블(hash table)..
[알고리즘](C언어) 트리 탐색을 이용한 사전의 트리 구현 - 이진탐색트리(BST) 탐색 트리의 종류로 두 가지를 다룬다. 이진탐색트리와 AVL 트리이다. 1. 이진탐색트리(BST) 내부노드에 (키, 원소) 쌍을 저장하며 다음의 성질을 만족하는 이진트리 이진트리와는 다르다! 탐색이 가능해야하는 이진탐색트리다. u, v, w가 모두 트리노드일 때, u와 w가 각각 v의 왼쪽과 오른쪽 부트리에 존재할 때 다음이 성립해야 한다. key(u) < key(v) 중위순회 후계자 y는 T를 중위순회할 경우 노드 w 바로 다음에 방문하게 되는 내부노드이므로 w의 중위순회 후계자(inorder successor)라 불린다. 따라서 y는 w의 오른쪽 부트리 내 노드 중 가장 왼쪽으로 돌출된 내부노드 2. y의 내용을 w에 복사 3. reduceExternal(z) 작업을 사용하여 노드 y와 z를 삭제 r..
[알고리즘](C언어) 사전 ADT 개념, 선형 탐색과 이진 탐색을 이용한 사전의 리스트 구현 1. 사전 ADT 탐색 가능한 형태의 (키, 원소) 쌍 항목들의 모음을 모델링 주요 작업 탐색(searching) 삽입(inserting) 삭제(deleting) 사전의 종류 무순사전 순서사전 2. 사전 ADT 메쏘드 일반 메쏘드 integer size() 사전의 항목 수를 반환 boolean isEmpty() 사전이 비어 있는지 여부를 반환 접근 메쏘드 element findElement(k) 사전에 키 k를 가진 항목이 존재하면 해당 원소를 반환 그렇지 않으면 특별 원소 NoSuchKey를 반환 갱신 메쏘드 insertItem(k,e) 사전에 (k,e) 항목을 삽입 element removeElement(k) 사전에 키 k를 가진 항목이 존재하면 해당 항목을 삭제하고 원소를 반환 그렇지 않으면 특별 ..
[알고리즘] 백준 1417번: 국회의원 선거 https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 문제 다솜이는 사람의 마음을 읽을 수 있는 기계를 가지고 있다. 다솜이는 이 기계를 이용해서 2008년 4월 9일 국회의원 선거를 조작하려고 한다. 다솜이의 기계는 각 사람들이 누구를 찍을 지 미리 읽을 수 있다. 어떤 사람이 누구를 찍을 지 정했으면, 반드시 선거때 그 사람을 찍는다. 현재 형택구에 나온 국회의원 후보는 N명이다. 다솜이는 이 기계를 이용해서 그 마을의 주민 M명의 마..
[데이터 처리](Kaggle Pandas Tutorials) 2. Indexing, Selecting, Assigning 본 포스트의 내용은 아래의 Kaggle Pandas Tutorials Course의 각 step에 대해 공부한 것을 바탕으로 합니다. https://www.kaggle.com/code/residentmario/indexing-selecting-assigning Indexing, Selecting & Assigning Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources www.kaggle.com 1. Native accessors(Native Python) pandas에서 제공하는 기능을 사용하지 않고 Python 문법만 이용해서 DataFrame의 특정한 Series를 인덱싱하는..
[데이터 처리](Kaggle Pandas Tutorials) 1. Pandas 이용하여 데이터 생성하고 읽고 쓰기 본 포스트의 내용은 아래의 Kaggle Pandas Tutorials Course의 각 step에 대해 공부한 것을 바탕으로 합니다. https://www.kaggle.com/code/residentmario/creating-reading-and-writing Creating, Reading and Writing Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources www.kaggle.com 1. Pandas library import하기 아래의 명령어를 통해 Pandas library를 가져와 이용할 수 있다. import pandas as pd 이때 Kaggle이나 Colab ..
[라즈베리파이] SSH를 이용해 PC에서 라즈베리파이에 무선 접속하기 SSH: Secure Shell Protocol SSH는 네트워크 프로토콜 중 하나로, 인터넷 같은 public network를 이용하여 컴퓨터끼리 통신할 때 안전하게 통신할 수 있도록 하는 보안 프로토콜이다. SSH의 대표적인 용도는 이렇다. 1. 데이터 전송(ex. Github) 2. 원격 제어(ex. AWS) 라즈베리에서 ssh를 사용하는 이유는 주로 원격 제어를 위해서이다. ssh를 이용하면 노트북과 같은 PC에서 라즈베리파이에 원격으로 접속할 수 있다. 별도의 설정을 하지 않았다면 라즈베리파이에 접근할 수 있는 방법은 모니터를 연결하는 것 뿐이다. 원격 접속에 성공하면 모니터를 따로 연결하지 않아도 되기 때문에 편리하게 라즈베리파이에 접속할 수 있다. 그럼 지금부터 SSH를 통해 PC와 라즈베리..
[22-1 창의학기제] #0. 'Unity를 활용한 HetNet 네트워크 시뮬레이션' 프로젝트 22년도 1학기 창의학기제로 'Unity를 활용한 HetNet 네트워크 시뮬레이션'을 진행하기로 하였다. 연구실 선배께서 주제를 추천해주셨고 너무나 감사하게도 계획서 작성까지 지도해주셨다. 창의학기제를 같이 하려고 했으나 선배 사정 상 불가피하게 혼자 진행하게 되었다. 앞으로도 쭉 혼자 할 지는 잘 모르겠다. 아는 것이 없어서 아직 감이 잘 서지 않는다. 혼자 진행하려 하니 잘 마칠 수 있을까 두렵기도 하다. 일단 로그를 남겨 진행상황을 가시화, 외재화 하는 것이 좋겠다고 판단하였다. 이 글의 연재가 끝날 무렵에는 프로젝트가 잘 마무리 되길 바라며 열심히 공부해보겠다. 같이 공부하는 교재는 여러가지가 되겠지만 교재 '따라 하면서 배우는 유니티 ML-Agents'가 주가 될 것이다. 신청할 때 작성해둔 것..

반응형