Blog Posts

[WSL2] Mysql 자동실행 설정하기

[WSL2] Mysql 자동실행 설정하기

[wsl2 설치가 안된 분은 여기를 참고하자 ] 나는 이번년도에 wsl2를 알게 되어 wsl2을 통해 편하게 개발을 진행하였다. 그런데, wsl2가 아직 여럿 불편한 점이 있었고 그 중 하나가 wsl2의 자동 실행 미지원이다. wsl2는 컴퓨터 시작시 자동 실행을 지원하지 않아 수동으로 ssh나 mysql, nginx와 같은 프로그램들을 실행시켜줘야하는 불편함이 있었다....

Read More
AVL Tree

AVL Tree

BST (이진 탐색 트리)를 기반으로 둔 Tree. 어떤 노드를 기준으로 하더라도 왼쪽자식의 깊이와 오른쪽 자식의 깊이 차이가 1을 넘지 않는 트리 1. 용어 개념 정리 균형치 (Balance factor) : 자식노드의 깊이 차이 ( 왼쪽 서브트리의 높이 – 오른쪽 서브트리의 높이 ) BF는 -1, 0, 1이 기준이며, 이 범위를 벗어난다면, 그 트리의 균형은 깨진것이다. 2. 특징 BST의 모든 특징을 갖는다....

Read More
Red Black Tree

Red Black Tree

BST (이진 탐색 트리)를 기반으로 둔 Tree. Tree의 Rebalancing 방법 중 하나로 balanced한 트리이다. 각 노드는 값(key)말고도 색을 갖고 있으며, 색은 레드 or 블랙 2종류이다. 1. Red Black Tree가 갖는 특성 Root Property : 루트(root)노드는 블랙(black)이다. External Property : 모든 외부 노드 (external node)는 블랙이다. Depth Property : 모든 단말 노드(leaf node)의 경우 루트부터 외부 노드 까지 방문하는 블랙 노드의 수가 같다. Internal Property : 빨강 노드의 자식은 블랙이다. == No Double Red : 레드 노드는 두개가 연속해서 올 수 없다....

Read More
KPU S/W 경진대회 본선 후기

KPU S/W 경진대회 본선 후기

본선일정은 2020.10.14 (수)에 13:30 ~ 17:00까지로 예선 후 1주일 뒤에 잡혀있었다. 수요일 본선 당일 12시 반까지 있던 수업을 마치고 기숙사에 들려 노트북을 챙겨 시험장소인 소강당으로 향했다. 도착해서 점심으로 서브웨이와 스프라이트를 받고 자리를 잡자마자 샌드위치를 허겁지겁 먹어치웠다. (아침 점심을 안먹었더니 배가 너무 고팠었다…😂)...

Read More
한국공학대학교 S/W 경진대회 예선 후기

한국공학대학교 S/W 경진대회 예선 후기

학교공부에 치여 살다보니 알고리즘 문제 풀이를 안한지 3달정도가 지났는 데 학교 엘레베이터에 위와 같은 코테 포스터가 붙여진 것을 보았는데 실력 테스트도 해보고 상금도 노릴겸 해서 겸사겸사 신청을 했다. 대회 시상관련은 본선 진출시 기념품과, 대상 1명 50만원, 우수상 7명 30만원, 장려상 15명 10만원이었다. 사실 예선 통과후 본선에 들면 40명중 절반 이상인 23명안에만 들어도 10만원의 상금을 준다는 것을 보고 10만원을 목표로 신청했다....

Read More
Counting Sort ( 계수 정렬 )

Counting Sort ( 계수 정렬 )

계수 정렬은 삽입, 버블, 선택, 퀵, 합병 정렬들과 같이 비교를 수행하는 방식이 아닌 비교를 하지 않는 Non-Comparisions Sorting Algorithm 이다. 그러면 여기서 값을 정렬하는데 어떻게 비교 없이 수행하나요? 와 같은 질문이 있을 텐데, 계수 정렬은 비교 대신 정렬할 수의 개수와 배열의 인덱스를 가지고 정렬을 수행하게 된다. 1. 기본적인 흐름 2 1 2 4 5 3 6 5 3 을 정렬하고자 한다면 1의 개수는 1개, 2의 개수는 2개, 3의 개수는 2개, 4의 개수는 1개, 5의 개수는 2개, 6의 개수는 1개 이기 때문에 작은 수 부터 개수만큼 차례대로 나열하게 되면...

Read More
Hugo와 Github page로 블로그 구축

Hugo와 Github page로 블로그 구축

Note 블로그를 작성하기로 마음 먹은 후에 가장 먼저 할 일이 블로그를 만드는 것이었다. hugo와 github을 사용하면서 블로그를 open하는 과정과 겪었던 문제점들, 추가한 내용들을 정리하여 hugo를 선택하신분들에게 조금이나마 도움이 되고자 한다. hugo를 선택한 이유 github page를 이용하여 블로그를 운영하는데 다양한 generator가 존재한다....

Read More
Hugo theme Custom 하기

Hugo theme Custom 하기

우선 theme 마다 파일 경로나 파일이름, 설정방법은 조금씩 다를 수 있다는 것을 알리고 시작하겠다. 저는 theme-docport 를 사용하고 있고, 왼쪽에 카테고리 별로 구분할 수있는 기능과 오른쪽에 특정 header로의 이동기능이 있는 테마를 찾다가 이 테마를 선택했다. 1. Code 태그 수정 1) 인라인 코드 해당 code 태그의 css가 정의된 파일을 찾아야 되는데 hugo는 적용방식이 theme폴더 내의 파일을 이용하고 그 위의 루트파일에 같은 이름의 파일이 있으면 덮어씌워 적용하는 방식이다....

Read More
Sorting Algorithm

Sorting Algorithm

1. 종류 선택 정렬 ( Selection Sort ) 삽입 정렬 ( Insertion Sort ) 버블 정렬 ( Bubble Sort ) 셸 정렬 ( Shell Sort ) 퀵 정렬 ( Quick Sort ) 힙 정렬 ( Heap Sort ) 합병 정렬 ( Merge Sort ) 기수 정렬 ( Radix Sort ) 계수(카운트) 정렬 ( Count Sort ) 트리 정렬 큐브 정렬 팀 정렬 2. 시간 복잡도 ( Big-O ) 알고리즘 최선 평균 최악 선택 정렬 Ω(n^2) Θ(n^2) O(n^2) 버블 정렬 Ω(n) Θ(n^2) O(n^2) 삽입 정렬 Ω(n) Θ(n^2) O(n^2) 트리 정렬 Ω(nlogn) Θ(nlogn) O(n^2) 퀵 정렬 Ω(nlogn) Θ(nlogn) O(n^2) 셸 정렬 Ω(n) Θ(n^1.5) O(n^1.5) 힙 정렬 Ω(nlogn) Θ(nlogn) O(nlogn) 합병 정렬 Ω(nlogn) Θ(nlogn) O(nlogn) 큐브 정렬 Ω(n) Θ(nlogn) O(nlogn) 팀 정렬 Ω(n) Θ(nlogn) O(nlogn) 기수 정렬 Ω(nk) Θ(nk) O(nk) 계수 정렬 Ω(n+k) Θ(n+k) O(n+k) 3. 공간 복잡도 ( Big-O ) 알고리즘 최악 선택 정렬 O(1) 버블 정렬 O(1) 삽입 정렬 O(1) 셸 정렬 O(1) 힙 정렬 O(1) 퀵 정렬 O(logn) 합병 정렬 O(n) 큐브 정렬 O(n) 트리 정렬 O(n) 팀 정렬 O(n) 계수 정렬 O(k) 기수 정렬 O(n+k) 4. 정렬의 특성 1) 안정 정렬( stable sort ) 정렬되지 않은 상태의 같은 키값을 가진 원소의 순서가 정렬 후에도 유지 되는 정렬 상황에 따라서 객체나 키값이 여러개인 값들을 정렬 하려고 할때 원래의 순서가 바뀌게 되면 안될 수 있기 때문에 그때는 stable한 sort를 이용해야 한다. Bubble, Insertion, Merge, Counting, Bucket, Radix Sort가 해당된다. Note...

Read More
Tree

Tree

그래프의 일종으로, 여러 노드가 한개의 노드를 가리킬 수 없는 구조 선형구조가 아닌 (비선형), 부모자식의 관계를 가지는 계층형 구조 1. 용어 개념 (설명) Node (노드): 트리를 구성하고 있는 각각의 요소를 의미한다. Edge (= link, 간선) : 트리를 구성하기 위해 노드와 노드를 연결하는 선을 의미한다. Root Node (루트 노드) : 트리 구조에서 최상위에 있는 노드를 의미한다. Sibling (형제 노드) : 같은 부모를 갖는 노드 Degree (차수) : 해당 노드의 자식노드 개수 Depth (깊이) : 루트 노드 부터 현재 노드까지의 간선의 개수 Level (레벨) : 같은 깊이를 갖는 노드들의 집합 루트 노드의 레벨을 1이 아닌 0으로 시작할 수도 있다. 편한대로 하면 된다. Height (높이) : 트리의 최대 레벨 Terminal Node (= leaf Node, 단말 노드) : 하위에 다른 노드가 연결되어 있지 않은 노드를 의미한다. Internal Node (내부노드, 비단말 노드) : 노드를 제외한 모든 노드로 루트 노드를 포함한다. https://www.gowoonsori.com/images/datastructure/tree/perfect2.png does not exist 위의 트리로 예를 들어 설명하자면, 아래와 같이 된다....

Read More