[C언어 포인터 기반 리스트 알고리즘] 양방향 연결리스트 특정 원소 오름차순 삽입 및 삭제하기
·
Algorithm
💡 산넘어 산이라는 뜻이 이런 것을 말하는 것인가.. 너무 너무 어렵다.. 문제 💡 배열 [1, 2, 3, 7, 9]에서 배열 [2, 3, 7, 9]로 변경하시오 당연히 없는 문제기에 대충 내가 만들었다. 해답 #include #include typedef struct Node { int data; struct Node *prev; struct Node *next; } Node; Node *head, *tail; void insert(int data) { Node* node = (Node*) malloc(sizeof(Node)); node->data = data; Node* cur; cur = head->next; while(cur->data < data && cur != tail) { cur = cur..
[C언어 배열 기반 스택 알고리즘] 스택 삽입 및 삭제하기
·
Algorithm
💡 이번에는 배열 기반 스택 삽입 및 삭제하는 방법을 기록해보겠다. 문제 💡 배열 [1, 2, 3, 7, 9]을 삽입하고 배열 [1, 2, 3, 7]로 변경하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #include #define SIZE 10000 #define INF 99999999 int stack[SIZE]; int top = -1; void push(int data) { if (top == SIZE -1) { printf("스택 오버플로우가 발생했습니다.\\n"); return; } stack[++top] = data; } int pop() { if (top == -1) { printf("스택 언더플로우가 발생했습니다.\\n"); return -INF; } return stack[t..
[C언어 포인터 기반 스택 알고리즘] 스택 삽입 및 삭제하기
·
Algorithm
💡 이번에는 포인터 기반 스택 삽입 및 삭제하는 방법을 기록해보겠다. 문제 💡 배열 [1, 2, 3, 7, 9]을 삽입하고 배열 [1, 2, 3, 7]로 변경하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #include #include #define INF 99999999 typedef struct Node { int data; struct Node *next; } Node; typedef struct Stack { Node *top; } Stack; void push(Stack *stack, int data) { Node* node = (Node*) malloc(sizeof(Node)); node->data = data; node->next = stack->top; stack->top = n..
[C언어 포인터 기반 스택 알고리즘] 후위 표기법 계산기 만들기
·
Algorithm
💡 이번에는 포인터 기반 스택을 사용하여 후위 표기법 계산기를 만들어보았다. 문제 💡 스택 기반 계산기를 만들어보시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #include #include #include typedef struct Node { char data[100]; struct Node *next; } Node; typedef struct Stack { Node *top; } Stack; void push(Stack *stack, char *data) { Node *node = (Node*)malloc(sizeof(Node)); strcpy(node->data, data); node->next = stack->top; stack->top = node; } char* getTop(Stac..
[C언어 배열 기반 큐 알고리즘] 큐 삽입 및 삭제하기
·
Algorithm
💡 이번에는 큐를 이용하여 배열 기반 큐 삽입 및 삭제하는 방법을 배워보았다. 문제 💡 큐를 사용하여 배열 [7, 5, 4, 6]을 만들고 [4, 6] 결과를 도출하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #include #define SIZE 10000 #define INF 99999999 int queue[SIZE]; int front = 0; // 앞 int rear = 0; // 뒤 void push(int data) { if (rear >= SIZE) { printf("큐 오버플로우가 발생했습니다.\\n"); return; } queue[rear++] = data; } int pop() { if (front == rear) { printf("큐 언더플로우가 발생했습니다.\\n");..
[C언어 포인터 기반 큐 알고리즘] 큐 삽입 및 삭제하기
·
Algorithm
💡 이번에는 큐를 이용하여 포인터 기반 큐 삽입 및 삭제하는 방법을 배워보았다. 문제 💡 큐를 사용하여 배열 [7, 5, 4, 6]을 만들고 [4, 6] 결과를 도출하시오. 당연히 없는 문제기에 대충 내가 만들었다. 해답 #include #include #define INF 99999999 typedef struct Node { int data; struct Node *next; } Node; typedef struct Queue { Node *front; Node *rear; int count; } Queue; void push(Queue *queue, int data) { Node *node = (Node*)malloc(sizeof(Node)); node->data = data; node->next ..
[C언어 선택정렬 알고리즘] 선택정렬 구현하기
·
Algorithm
💡 이번에는 선택정렬 하는 법을 배워보았다. 문제 💡 사용자가 입력한 값이 오름차순으로 선택정렬되게 코드를 구현하시오 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #include #define SIZE 1000 int a[SIZE]; int swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main(void) { int n, min, index; scanf("%d", &n); for (int i = 0 ; i < n ; i++) { scanf("%d", &a[i]); } for (int i = 0 ; i < n ; i++) { min = INT_MAX; for (i..
[C언어 선택정렬 알고리즘] 삽입정렬 구현하기
·
Algorithm
💡 이번에는 삽입정렬 하는 법을 배워보았다. 문제 💡 사용자가 입력한 값이 오름차순으로 삽입정렬되게 코드를 구현하시오 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #define SIZE 1000 int a [SIZE]; int swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main(void) { int n; scanf("%d", &n); for (int i = 0 ; i =0 && a[j] > a[j..
[C언어 퀵 정렬 알고리즘] 퀵 정렬 구현하기
·
Algorithm
💡 이번에는 퀵 정렬 하는 법을 배워보았다. 문제 💡 사용자가 입력한 값이 오름차순으로 퀵 정렬 되게 코드를 구현하시오 당연히 없는 문제기에 대충 내가 만들었다. 해답 #define _CRT_SECURE_NO_WARNINGS #include #define SIZE 1000 int a [SIZE]; int swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } void quickSort(int start, int end) { if (start >= end) { return; } int key = start; int i = start + 1; int j = end; int temp; while (i j) { swap(&a[key], &a[j]); } els..
[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..
indeeah
하기나 해