728x90

Computer Science 403

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장 - 4

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

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장 - 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..

Arduino] LED 도트 매트릭스

Arduino] LED 도트 매트릭스 사용하기 LED 도트매트릭스라고 이야기를 하면아예 무지한 사람들은 전혀 감을 잡지 못한다.그냥 도심에서 크게 보이는 전광판이나,대형식당 등에서 간간히 보이는 LED 전광판이라고 생각하면 편하다. 통상적으로 베이직 키트 등의 세트에 포함된 도트 매트릭스는5X8형태의 매트릭스가 많고,널리 사용되는 만큼 이를 사용하는 방법에 대해서 많이 알려져 있어네이버에 검색만 해도 쏟아져 나올 법하지만,그래도 필자가 지난날 과제를 수행하면서 정리하였던 도트 매트릭스와 관한 내용과경험을 되짚어 보면서 이야기를 하고자 이렇게 글을 끄적여본다. LED 도트 매트릭스 단어 자체를 보면,LED를 여러 개 배열하여 이를 매트릭스(행렬) 구조로 만들어놓은 소자임을 알 수 있다. 보는 것처럼 이런 ..

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..

Algorithm] Knapsack(배낭 문제) - 동적계획법

Algorithm] Knapsack(배낭 문제) - 동적계획법 처음 내가 알고리즘 문제를 접했을 때 처음으로 배낭 문제를 접근했던 방식은 그리디였다.그리디는 다들 알고 있듯, 선택에 대한 번복도 없고, 근시안적인 선택으로 인해서경우에 따라서는 최적해를 보장하지 못하는 문제가 발생한다. 모든 배낭 문제에 대해서 그리디가 유효한 방법이 될 수 없는 건 아니고,물건을 임의로 쪼개어 담을 수 있는(용량을 정할 수 있는) 배낭 문제라면,무게 당 가격을 계산해서 적당히 담는 걸 고려하여 최적해를 구할 수 있기 때문에그리디 알고리즘으로는 해결이 가능하며 이를 부분 배낭(Fractional Knapsack)문제라고 한다.그러나, 일반적인 배낭 문제에서는 물건을 쪼개서 담을 수 없어서 다른 방식을 고려해야 한다. 이 때..

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

DataStructure] C언어로 쉽게 풀어쓴 자료구조 8장 - 4 C언어로 쉽게 풀어쓴 자료구조8장 Exercise 문제다.필자가 학교 다니면서 자료구조론 수업을 들었는데,과제로 제출했던 것들이고,난항을 겪고 있는 사람들에게 참고가 되었으면 하는 마음으로 올린다.자고로, 버그가 존재할 수 있으니 디버깅 작업은 필수다. 19. 우선순위 큐 추상 자료형의 연산들 중에서find 연산, is_empty 연산, is_full 연산을 구현하여보라.우선순위 큐가 히프로 구현되었다고 가정한다. 12345678910111213141516171819202122#ifndef __HEAP_PQ_H__#define __HEAP_PQ_H__ #define MAX_ELEMENT 200 typedef struct { int ke..

Algorithm] 작업 스케줄링(Task Scheduling)

Algorithm] 작업 스케줄링(Task Scheduling) 기계에서 수행하는 n개의 작업(T1, T2, T3, ... , Tn)이 있고,각 작업에 시작 시간과 종료 시간이 존재한다고 할 때 최소한의 기계를 배치하면서모든 작업을 수행하도록 하는 문제를 작업 스케줄링이라고 한다.이 때 수행 시간이 중복되지 않게 모든 작업을가장 적은 수의 기계에 배정하는 최적해를 구하는 문제라는 것에 초점을 두자. 작업 스케줄링 문제에서 우리가 다룰 수 있는 변수와알 수 있는 정보에 대해서 조금 생각해보도록 하자. 작업의 수 n과, 각 작업들의 시작 시간과 종료 시간이 기본적으로 입력값으로 들어올 것이다.이건 입력값을 통해서 우리가 알 수 있는 정보고문제를 살펴봤을 때 우리가 알 수 있는 정보가 하나 더 있다.그 어떠한..

728x90