[C언어 계수 정렬 알고리즘] 계수 정렬 구현하기
·
Algorithm
💡 이번에는 계수 정렬 하는 법을 배워보았다. 문제 💡 사용자가 입력한 값이 오름차순으로 계수 정렬 되게 코드를 구현하시오 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #define MAX_VALUE 10001 int n, m; int a[MAX_VALUE]; int main() { scanf("%d", &n); for (int i = 0 ; i < n ; i++) { scanf("%d", &m); a[m]++; } for (int i = 0 ; i < MAX_VALUE ; i++) { while (a[i] != 0 ) { printf("%d ", i); a[i]--; } } return 0; } 설명 계수 정렬이란? Count..
[C언어 기수 정렬 알고리즘] 기수 정렬 구현하기
·
Algorithm
💡 이번에는 기수 정렬 하는 법을 배워보았다. 문제 💡 사용자가 입력한 값이 오름차순으로 기수 정렬 되게 코드를 구현하시오 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #define MAX 10000 void radixSort(int *a, int n) { int res[MAX]; // 결과 배열 int maxValue = 0; int exp = 1; for (int i = 0 ; i maxValue) { maxValue = a[i]; } } while (maxValue / exp > 0) { int bucket[10] = { 0 }; for (int i = 0 ; i < n ; i++..
[C언어 이진 트리 알고리즘] 이진 트리 구현 및 순회 구현하기
·
Algorithm
💡 이번에는 이진 트리로 구현 및 순회 하는 법을 배워보았다. 문제 💡 이진 트리로 구현 및 순회할 수 있게 구현하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #include #include typedef struct Node { int data; struct Node *leftChild; struct Node *rightChild; } Node; Node* initNode(int data, Node* leftChild, Node* rightChild) { Node* node = (Node*)malloc(sizeof(Node)); node->data = data; node->leftChild = leftChild; node->rightChild = rightChild; return node; ..
[C언어 우선순위 큐 알고리즘] 우선순위 큐 구현하기
·
Algorithm
💡 이번에는 우선순위 큐를 구현 하는 법을 배워보았다. 문제 💡 우선순위 큐 방식으로 큐를 만드시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #define MAX_SIZE 10000 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } typedef struct priorityQueue { int heap[MAX_SIZE]; int count; } priorityQueue; void push(priorityQueue *pq, int data) { if (pq->count >= MAX_SIZE) { return ; } pq->heap[pq->count] = dat..
[C언어 순차탐색 알고리즘] 순차탐색 구현하기
·
Algorithm
💡 이번에는 순차탐색을 구현 하는 법을 배워보았다. 문제 💡 순차탐색 기능으로 원소를 탐색하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #include #include #define LENGTH 100 char **array; int founded; int main(void) { int n; char *word; word = (char*) malloc(sizeof(char) * LENGTH); scanf("%d %s", &n, word); array = (char**) malloc(sizeof(char*) * n); for (int i = 0 ; i < n ; i++) { array[i] = (char*) malloc(s..
[C언어 이진탐색 알고리즘] 이진탐색 구현하기
·
Algorithm
💡 이번에는 이진탐색을 구현 하는 법을 배워보았다. 문제 💡 이진탐색 기능으로 원소를 탐색하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #define MAX_SIZE 100000 int a[MAX_SIZE]; int founded = 0; int search(int start, int end, int target) { if (start > end) { return -9999; } int mid = (start + end) / 2; if (a[mid] == target) { return mid; } else if (a[mid] > target) { return search(start, mid - 1, target); } e..
[C언어 무방향 비가중치 그래프 알고리즘] 무방향 비가중치 그래프와 인접 행렬
·
Algorithm
💡 이번에는 무방향 비가중치 그래프를 구현 하는 법을 배워보았다. 문제 💡 무방향 비가중치 그래프를 구현하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include int a[1001][1001]; int n, m; int main(void) { scanf("%d %d", &n, &m); for (int i = 0 ; i < m ; i++) { int x, y; scanf("%d %d", &x, &y); // 서로 연결시킴 a[x][y] = 1; a[y][x] = 1; } for (int i = 1; i
[C언어 방향 가중치 그래프 알고리즘] 방향 가중치 그래프와 인접 리스트
·
Algorithm
💡 이번에는 방향 가중치 그래프를 구현 하는 법을 배워보았다. 문제 💡 방향 가중치 그래프를 구현하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #include typedef struct Node { int index; int distance; struct Node *next; } Node; void addFront(Node *root, int index, int distance) { Node *node = (Node*) malloc(sizeof(Node)); node->index = index; node->distance = distance; node->next = root->next; root->next = node; ..
[C언어 깊이 우선 탐색 알고리즘] 깊이 우선 탐색 구현하기
·
Algorithm
💡 이번에는 깊이 우선 탐색을 구현 하는 법을 배워보았다. 문제 💡 깊이 우선 탐색을 구현하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #include #define MAX_SIZE 1001 typedef struct Node { int index; struct Node *next; } Node; Node** a; int n, m, c[MAX_SIZE]; void addFront(Node *root, int index) { Node *node = (Node*) malloc(sizeof(Node)); node->index = index; node->next = root->next; root->next = node; } vo..
동적 메모리 할당이란?
·
TIL
💡 일단 이전 포스팅인 포인터에서 벗어나서 기분이 매우 좋다. 이 좋은 기분으로 동적 메모리 할당에 대해서 알아보기로 하자. 동적 메모리 할당이란? C언어에서 배열의 경우 사전에 적절한 크기만큼 할당해주어야 한다. 원하는 만큼만 메모리를 할당해서 사용하고자 한다면 프로그램 실행 도중에 메모리를 할당하는 방법인 동적 메모리 할당을 사용한다. 동적으로 할당된 변수는 힙 영역에 저장된다. 동적 메모리 할당 함수 malloc() 함수를 이용해 원하는 만큼의 메모리 공간을 확보할 수 있다. malloc() 함수는 메모리 할당에 성공하면 주소를 반환하고, 그렇지 않으면 NULL을 반환한다. malloc() 함수는 라이브러리에 정의되어 있다. free() 함수로 메모리 해제를 해주어야 메모리 내의 프로세스 무게가 더..
indeeah
'C' 태그의 글 목록 (2 Page)