728x90

소스코드 243

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

C#] 리스트뷰 항목(아이템) 더블 클릭 시 항목 읽어오기

C#] 리스트뷰 항목 더블클릭 시 항목 읽어오기 리스트뷰에 있는 항목들에 대해서 더블클릭을 하면그 항목의 정보들에 대해서 조회가 필요한 경우가 있다. 기본적으로 다룰 수 있는 여러 가지 이벤트를 이용하는 방법들이 많다.MouseDown이나 다른 여러 가지 이벤트를 사용하는 꼼수들이 존재하지만내가 원하던 것에 가장 근접한 방식은MouseDoubleClick 이벤트를 이용하는 것이었다. 이벤트 자체는 마우스를 이용해 더블 클릭을 하면 발생하지만,문제는 리스트뷰의 특정 항목에서만 작동하는 게 아니라,리스트뷰에 대한 더블클릭으로 간주되는 것이라서 항목 조회가 되는 건 아니다.(MouseDown이나 Hit를 사용하는 것도 이 때문이지만 구현이 복잡해진다.) 여기서 조금의 꼼수를 부릴 필요가 있다.어떤 항목에 대한..

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

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과, 각 작업들의 시작 시간과 종료 시간이 기본적으로 입력값으로 들어올 것이다.이건 입력값을 통해서 우리가 알 수 있는 정보고문제를 살펴봤을 때 우리가 알 수 있는 정보가 하나 더 있다.그 어떠한..

Algorithm] 합병 정렬(Merge Sort)

Algorithm] 합병 정렬(Merge Sort) 합병 정렬은 대표적인 분할정복 방법(Divide and Conquer)을 사용한다.더 이상 부분 문제로 만들 수 없는 수준까지 분할한 뒤,이를 다시 취합하는 과정에서(정복) 정렬이 이루어지는 정렬 알고리즘이다. 일단 백문이불여일견이니 이것이 작동하는 과정을 그림으로 한 번 살펴보자. 파란색은 정렬이 완료되지 않은 부분문제, 즉 분할 대상이고주황색은 정렬이 완료된 부분문제로 정복 및 정복 대상이다.과정을 보면 알 수 있듯, 다시 한 번 말하지만 합병 정렬은 정복 과정에서 정렬이 이루어진다. 의사 코드를 한 번 살펴보자. MergeSort(arr,start,end)입력 : arr[start] ~ arr[end]출력 : 정렬된 arr[start] ~ arr[..

728x90