728x90

C언어 34

C] memset, memcmp

알고리즘 문제를 풀다보면, 새로운 값을 입력받을 때마다,임시적으로 사용했던 데이터들을 모두 갈아 엎고,메모리에 저장된 값을 특정한 값으로 일괄초기화를 해야 하는 경우가 생기는데,그럴 때마다 골치가 아팠는데 이럴 때 사용하기 좋은 메모리 조작 함수가 있다. memset, memcmp, memcpy, memmove는 string.h에 정의되어 있으며,memory.h에도 정의되어 있는데 이 때 memmove는 정의되어 있지 않으니,고민할 것 없이 string.h를 포함시키면 된다. 1. memset 함수 원형 1void * memset(void * ptr, int value, size_t num);cs 사용법memset(메모리 블럭 첫번째 주소, 문자(문자 하나), 메모리 블럭 크기(byte)) 활용자료형이 ..

Algorithm] 동적계획법 - 연속 행렬 곱셈

연속된 행렬들의 곱셈에 필요한 원소 간 최소 곱셈 횟수를 찾는 문제로,일단 연속된 행렬 간의 곱셈이 모두 가능하다는 전제 조건 하에 이루어진다. A=10X20, B=20X5, C=5X15 다음 세 행렬에 대한 계산을 예로 들면, AxBxC는 두 가지 방법으로 계산할 수 있다. 1. (AxB)xC2. Ax(BxC) 두 가지 계산은 결과는 아무 차이가 없지만, 순서에 따라서 두 행렬 곱셈의 횟수가 차이가 나기 때문에이를 최소화하고자 하는 방법을 구성할 필요가 있다. 일단, 1번의 계산을 예로 들면, 1번의 계산에서는 AxB는 10x20x5로, 1000회의 원소 곱셈을 시행하고,AxB 행렬은 10x5로, (AxB)xC는 750회 곱셈을 진행해 전체적으로 1750회의 원소 곱셈을 시행해야 한다. 2번의 계산은 ..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 6

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 6 C언어로 쉽게 풀어쓴 자료구조9장 Exercise 문제다.필자가 학교 다니면서 자료구조론 수업을 들었는데,과제로 제출했던 것들이고,난항을 겪고 있는 사람들에게 참고가 되었으면 하는 마음으로 올린다.자고로, 버그가 존재할 수 있으니 디버깅 작업은 필수다. 24. 퀵 정렬에서 함수가 수행되면서 정렬의 매 패스마다 다음과 같은 형식으로 화면에 출력하도록 함수를 수정하라. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 5

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 5 C언어로 쉽게 풀어쓴 자료구조9장 Exercise 문제다.필자가 학교 다니면서 자료구조론 수업을 들었는데,과제로 제출했던 것들이고,난항을 겪고 있는 사람들에게 참고가 되었으면 하는 마음으로 올린다.자고로, 버그가 존재할 수 있으니 디버깅 작업은 필수다. 23. 제일 작은 값을 선택하는 선택 정렬 알고리즘을 제일 큰 값을 선택하도록 변경하라. 정수 배열은 여전히 오름차순으로 정렬되어야 한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include #include #define SWAP(a,b) {int t; t=a; a=b..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 3

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 3 C언어로 쉽게 풀어쓴 자료구조9장 Exercise 문제다.필자가 학교 다니면서 자료구조론 수업을 들었는데,과제로 제출했던 것들이고,난항을 겪고 있는 사람들에게 참고가 되었으면 하는 마음으로 올린다.자고로, 버그가 존재할 수 있으니 디버깅 작업은 필수다. 21. 삽입 정렬에서 입력과 출력이 모두 동적 연결 리스트로 주어지는 경우의 삽입 정렬 함수를 구현하라. 12345678910111213141516171819202122232425#ifndef __SINGLE_LINKED_LIST_H__#define __SINGLE_LINKED_LIST_H__ typedef int element;typedef struct ListNode{ element..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 4

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 4 C언어로 쉽게 풀어쓴 자료구조9장 Exercise 문제다.필자가 학교 다니면서 자료구조론 수업을 들었는데,과제로 제출했던 것들이고,난항을 겪고 있는 사람들에게 참고가 되었으면 하는 마음으로 올린다.자고로, 버그가 존재할 수 있으니 디버깅 작업은 필수다. 22. 선택 정렬의 코드를 수정하여 선택 정렬의 각 단계를 출력하도록 하라. 아래 그림에서 왼쪽 괄호 안에 있는 숫자는 정렬이 되어 있는 숫자들이다. 오른쪽은 정렬을 해야 할 숫자들이다. 선택 정렬의 단계에서 다음과 같이 출력하도록 selection_sort 함수를 수정하라. 이를 위하여 사용자로부터 숫자들을 입력받을 수 있도록 하라. 1234567891011121314151617181..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 2

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 2 C언어로 쉽게 풀어쓴 자료구조9장 Exercise 문제다.필자가 학교 다니면서 자료구조론 수업을 들었는데,과제로 제출했던 것들이고,난항을 겪고 있는 사람들에게 참고가 되었으면 하는 마음으로 올린다.자고로, 버그가 존재할 수 있으니 디버깅 작업은 필수다. 20 C언어에서는 다음과 같이 함수 포인터를 파라미터로 갖는 함수를 만드는 것도 가능하다.먼저 간단한 두 개의 함수를 작성한다. ascend(int x, int y)는 xy면 TRUE를, 아니면 FALSE를 반환한다. insertion_sort 함수에 ascend 함수를 파라미터로 전달하면 오름차순 정렬이 되도록 하고, descend 함수를 파라미터로 전달하면 내림차순 정렬이 되도록 하..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 1

DataStructure] C언어로 쉽게 풀어쓴 자료구조 9장 - 1 C언어로 쉽게 풀어쓴 자료구조9장 Exercise 문제다.필자가 학교 다니면서 자료구조론 수업을 들었는데,과제로 제출했던 것들이고,난항을 겪고 있는 사람들에게 참고가 되었으면 하는 마음으로 올린다.자고로, 버그가 존재할 수 있으니 디버깅 작업은 필수다. 19. 삽입 정렬의 코드를 수정하여 삽입 정렬의 각 단계를 출력하도록 하라. 아래 그림에서 왼쪽 괄호 안에 있는 숫자는 정렬이 되어 있는 숫자들이다. 오른 쪽은 정렬을 해야 할 숫자들이다. 삽입 정렬의 단계에서 다음과 같이 출력하도록 insertion_sort 함수를 수정하라. 이를 위하여 사용자로부터 숫자를 입력받을 수 있도록 하여라. 123456789101112131415161718..

DataStructure] C언어로 쉽게 풀어쓴 자료구조 8장 - 5

DataStructure] C언어로 쉽게 풀어쓴 자료구조 8장 - 5 C언어로 쉽게 풀어쓴 자료구조8장 Exercise 문제다.필자가 학교 다니면서 자료구조론 수업을 들었는데,과제로 제출했던 것들이고,난항을 겪고 있는 사람들에게 참고가 되었으면 하는 마음으로 올린다.자고로, 버그가 존재할 수 있으니 디버깅 작업은 필수다. 12345678910111213141516171819202122#ifndef __HEAP_TREE_H__#define __HEAP_TREE_H__ #define MAX_ELEMENT 200 typedef struct { int key;} element;typedef struct { element heap[MAX_ELEMENT]; int size;} HeapType; void Init(H..

728x90