전체 글
-
[책] 내가 정말 원하는 건 뭐지?책/기타 2020. 5. 1. 19:13
도서 링크 >> 내가 정말 원하는 건 뭐지? 국내도서 저자 : 마스다 미리(Miri Masuda) / 박정임역 출판 : 이봄 2012.12.15 상세보기 고모는 종가시 나무 같다. 푸르디푸르러 겨울에도 시들지 않고 울타리가 되어 자신의 역할을 하고 있다. 그렇지만 벚꽃나무처럼 모든 사람이 이름을 알아주는 것도 아니다. 종가시나무. 그렇지만 나는 알고 있다. 종가시나무는 사실 커다란 나무다. 그런데도, 종가시나무는 울타리 역할까지 잘해낸다. 벚꽃나무는 할 수 없는 일을 종가시나무는 하고있다. - '내가 정말 원하는 건 뭐지? (마스다 미리)' - 2020.05.01 카페 그루비
-
[알고리즘] 2차원 배열 90도 회전하기 - C/C++알고리즘/알고리즘 구현 2020. 4. 18. 20:27
void rotate_cw(int M, int array[4][4], int count) { int rotatedArray[4][4]; while (count--) { for (int row = 0; row < M; ++row) { for (int col = 0; col < M; ++col) { rotatedArray[row][col] = array[M - 1 - col][row]; } } for (int row = 0; row < M; ++row) { for (int col = 0; col < M; ++col) { array[row][col] = rotatedArray[row][col]; } } } } void rotate_ccw(int M, int array[4][4], int count) { int..
-
1인 개발 게임 출시 : 2Minimum사이드 프로젝트/2Minimum (Game) 2020. 1. 30. 20:32
대학교 4학년 때 혼자 개발했던 게임을 몇년이 지난 후 이제야 출시하게 되었습니다.ㅎㅎ 그 당시에 90%까지 완성하고, 남은 작업 (튜토리얼 같은 부분)은 이번에 급하게 마무리하고 출시를 했네요;; 알고리즘 문제를 이용한 게임이고 간단한 조작의 퍼즐게임 입니다!! 한번쯤 다운 받으셔서 게임해보시고, 리뷰도 남겨주신다면 큰 힘이 될 것 같아요!! 감사합니다~~ [‘2Minimum’ 을 즐기는 방법!] 1. 주어진 퍼즐들 중에서, 연속된 두 퍼즐을 합쳐 최종적으로 하나의 퍼즐을 만들어야 합니다. 2. 두 퍼즐을 합칠 때마다 필요한 비용이 발생하고, 이 비용은 두 퍼즐 안에 적힌 숫자의 합을 의미합니다. 3. 퍼즐을 합쳐나갈수록 비용이 발생하고 비용의 총합이 게임화면 상단에 나타나게 됩니다. 4. 각 게임마다..
-
[알고리즘] 백준 7785번: 회사에 있는 사람 -C/C++알고리즘/백준 2019. 1. 11. 21:08
백준 7785번: 회사에 있는 사람 https://www.acmicpc.net/problem/7785 1. HASH(Single Linked List) 2. Merge Sort (라이브러리 사용하지 않고 직접 구현) #define NODE_MAX 1000001 #define HASH_MAX 10007 struct NODE { bool isEnter; char name[6]; NODE* prev; } node[NODE_MAX]; int index = 0; NODE* hashTable[HASH_MAX]; NODE* allNode[NODE_MAX]; NODE* enterNode[NODE_MAX]; NODE* bufferNode[NODE_MAX]; int cntAll = 0; int cntEnter = 0; c..
-
[알고리즘] 백준 1764번: 듣보잡 -C/C++알고리즘/백준 2019. 1. 9. 21:33
백준 1764번: 듣보잡 https://www.acmicpc.net/problem/1764 1. HASH(Single Linked List) 2. Merge Sort (라이브러리 사용하지 않고 직접 구현) #include #define HASH_MAX 10007 #define NODE_MAX 500001 #define NAME_MAX 500001 struct NODE { char name[21]; NODE* prev; } node[NODE_MAX]; int index = 0; NODE* hashTable[HASH_MAX]; char* DBJ[NAME_MAX]; char* tempDBJ[NAME_MAX]; void mystrcpy(char* dest, char* src) { while (*src != 0)..
-
[알고리즘] 이진탐색(Binary Search) -C/C++알고리즘/알고리즘 구현 2018. 10. 1. 20:20
오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘. 처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식이다. 처음 선택한 중앙값이 만약 찾는 값보다 크면 그 값은 새로운 최댓값이 되며, 작으면 그 값은 새로운 최솟값이 된다. 장점 : 검색이 반복될 때마다 목표값을 찾을 확률은 두 배가 되므로 속도가 빠르다 단점 : 정렬된 리스트에만 사용할 수 있다 시간복잡도 : O(logN) int binarySearch(int arr[], int searchData, int start, int end){ if (start > end)return -1; int mid = (start + end) / 2; if (arr[mid] == searchData) retu..
-
[알고리즘] 병합정렬(Merge Sort) -C/C++알고리즘/알고리즘 구현 2018. 9. 30. 20:26
- 부분집합으로 분할(Divide)하고 분할된 각 부분집합을 병합(Merge)하면서 정렬하는 분할정복(Divde&Conquer) 기법의 정렬 알고리즘 * 최선, 평균, 최악 : - 상당히 효율적인 정렬 알고리즘임을 알 수 있다. - 단 추가 메모리 공간이 필요하기 때문에 배열의 크기가 큰 경우는 비효율적이다. void mergeSort(int arr[], int buffer[], int start, int end) { if(start < end) { int middle = (start + end) / 2; mergeSort(arr, buffer, start, middle); mergeSort(arr, buffer, middle + 1, end); // divde int i = start; int j = ..
-
[알고리즘] 퀵소트(Quick Sort) - C/C++알고리즘/알고리즘 구현 2018. 9. 29. 16:56
- 피봇(pivot)을 기준으로 왼쪽에 작은 값 / 오른쪽에 큰 값으로 분류한 후, 이 두 부분 집합에 대해 각각 퀵소트를 동일하게 반복하는 분할 정복 (Divide and Conquer) 기법의 정렬 알고리즘 - 재귀호출 이용 * 최선, 평균 : - 상당히 효율적인 정렬 알고리즘임을 알 수 있다. * 최악 : - 부분집합이 한 쪽으로만 계속 몰리는 경우 효율성이 떨어진다. void quickSort(int arr[], int start, int end) { if (start < end) { int left = start; int right = end; int pivot = end; while(left < right) { while(arr[left] = arr[pivot] && left < right) ..