반응형

전체 글 2943

[C언어 알고리즘] 1.1 알고리즘(Algorithm)

[C언어 알고리즘] 1.1 알고리즘(Algorithm) 알고리즘은 특정 문제를 해결하기 위한 논리를 말해요. 해결해야 할 어떠한 문제가 주어지면 문제에 주어지는 선행 조건과 영향 인자와 후행 조건을 알아겠죠. 선행 조건은 알고리즘을 수행 하기 전의 상태를 말합니다. 그리고 영향 인자는 문제를 해결하는데 영향을 주는 인자예요. 후행 조건은 문제를 해결하고 난 후의 상태를 말해요. 결국 알고리즘은 선행 조건인 상태에서 주어진 영향 인자를 가지고 후행 조건에 맞게 문제를 해결하는 것이죠. 예를 들어 특정 범위 내의 정수의 합계를 구하는 문제를 살펴봅시다. 이 때는 선행 조건은 특별한 것이 없네요. 문제를 해결하는 데 영향을 주는 인자는 범위의 시작과 끝이겠죠. 따라서 알고리즘을 함수로 구현한다면 입력 인자로 ..

[C언어 알고리즘] 1. 다루는 내용

[C언어 알고리즘] 1. 다루는 내용출간일 2016년 11월 30일판매가 3000원형태 ebook학습에 도움이 되시면 ebook을 구입하여 소장하시면 감사하겠습니다.언제나 휴일 출판사의 수익금의 대부분은 아프리카에 기부하고 있습니다. 이 책은 프로그래머의 기초 지식인 알고리즘을 이론적인 접근과 구현을 다루고 있습니다. 알고리즘은 문제를 해결하기 위한 논리의 집합이예요. 문제 해결 방법으로 분류하면 반복 알고리즘, 재귀 알고리즘, 분할 정복, 동적 프로그래밍, 탐욕 알고리즘 등이 있죠. 컴퓨터 프로그래밍을 업무로 하는 이들에게 알고리즘은 실질적인 구현에서 필수적으로 필요합니다. 그리고 이들을 다루는 책은 매우 다양하죠. 이론으로 접근하는 책들은 다양한 알고리즘을 다루지만 실질적인 구현없이 추상적으로 소개할..

[C언어 자료구조] 8.4 그래프 소스 코드

8.4 그래프 소스 코드//common.h #pragma once //헤더 파일을 한 번만 포함해서 컴파일 #include #include #include #include #include #include #include #pragma warning(disable:4996) //4996컴파일 경고 메시지 출력 해제 //Array.h #pragma once typedef void * Element; typedef struct _Array Array; struct _Array { Element *base; int capacity; int usage; }; typedef Element *Iterator; Array *New_Array(); void Delete_Array(Array *arr); void Arra..

[C언어 자료구조] 8.3 그래프 테스트

8.3 그래프 테스트 이제 작성한 그래프가 잘 동작하는지 테스트 코드를 작성합시다.[그림 8.1] 그래프 논리적 도식 int main() { 먼저 그래프를 동적으로 생성합니다. Graph *graph = New_Graph(); 정점을 그래프에 추가합시다. Graph_AddVertex(graph,"A"); Graph_AddVertex(graph,"B"); Graph_AddVertex(graph,"C"); Graph_AddVertex(graph,"D"); Graph_AddVertex(graph,"E"); Graph_AddVertex(graph,"F"); Graph_AddVertex(graph,"G"); Graph_AddVertex(graph,"H"); 간선을 그래프에 추가합시다. Graph_AddEdge(g..

[C언어 자료구조] 8.2 그래프 구현

8.2 그래프 구현 동적으로 그래프를 생성하는 함수를 구현합시다. Graph *New_Graph() { Graph *graph = 0; 그래프 형식 크기의 메모리를 할당합니다. graph = (Graph *)malloc(sizeof(Graph)); 정점을 보관할 동적 배열과 간선을 보관할 동적 배열을 생성한 후에 그래프를 반환합니다. graph->vertexs = New_Array(); graph->edges = New_Array(); return graph; } 동적으로 생성한 그래프를 소멸하는 함수를 구현합시다. void Delete_Graph(Graph *graph) { 그래프 내부에서는 간선을 동적으로 생성하므로 그래프를 소멸하는 과정에서 간선들도 소멸해야 합니다. 따라서 간선을 순차적으로 접근하..

[C언어 자료구조] 8.1 그래프 설계

8.1 그래프 설계 정점은 문자열 리터럴 상수로 표현하기로 할게요. 사용하기 쉽게 const char * 형식을 Vertex이름으로 타입 재지정할게요. typedef const char * Vertex; 그리고 간선은 간선의 끝에 있는 두 개의 정점과 무게(거리)를 멤버로 정의할게요. typedef struct _Edge Edge; struct _Edge { Vertex ep1; Vertex ep2; int weight; }; 그래프는 정점을 보관하는 컬렉션과 간선을 보관하는 컬렉션으로 구성할게요. 여기에서는 동적 배열을 사용합시다. typedef struct _Graph Graph; struct _Graph { Array *vertexs; Array *edges; }; 동적으로 그래프를 생성하는 함수와..

[C언어 자료구조] 8. 정점과 간선 집합으로 표현한 그래프

8. 정점과 간선 집합으로 표현한 그래프 그래프를 표현하는 방법은 다양합니다. 이차원 배열을 이용해서 인접 행렬로 표현하는 방법도 있고 정점과 간선의 집합으로 표현하는 방법도 있습니다. 이차원 배열을 이용해서 인접 행렬로 표현하는 방법은 정점의 개수가 n일 때 행과 열이 n인 이차원 배열을 만들고 두 개의 정점 사이의 거리를 배열의 항목 값으로 설정하는 형태로 작성합니다. 이 방법은 다른 책과 인터넷 검색 등을 통해 어렵지 않게 찾아볼 수 있을 것입니다. 하지만 그래프의 정점의 개수가 많으면 실제 정점과 정점 사이에 존재하지 않는 간선을 위한 부분이 전체의 많은 부분을 차지하여 메모리 효율과 수행 속도가 나빠질 수 있습니다. 이 책에서는 정점과 간선의 집합을 이용하여 그래프를 나타내는 방법을 사용할게요...

[영문법] 현재완료, 과거완료

현재 완료, 과거완료현재완료과거부터 현재까지 이어지는 상태나 동작을 표현할 때 사용합니다."have/has + 과거분사" 형태로 표현합니다. He has been in the hospital. (그는 입원 중입니다.)It has been a long time. (그것은 오래 전의 일이죠.)I has lived in Seoul for seven years. (서울에 7년째 살고 있어요.)She has played the piano since she was five. (그녀는 다섯살 때부터 피아노를 연주했어요.) 과거 시제는 과거의 일이나 상태로 현재는 그렇지 않다는 의미를 내포하고 있습니다.He was in the hospital.(그는 병원에 있었어요. - 과거시제이므로 현재는 병원에 있지 않다는 의미를..

[고구려 11대 왕] 지나친 자만으로 충신(득래, 밀우, 유유)들을 잃은 동천왕

지나친 자만으로 충신(득래, 밀우, 유유)들을 잃은 동천왕 고구려의 11대 왕은 동천왕(227~248)입니다. 형사취수(형을 죽은 뒤에 동생이 형수와 결혼)한 산상왕은 왕후 우씨와 자식을 얻지 못했다고 합니다. 이에 주통촌 출신의 용녀로부터 얻은 자식이 동천왕입니다. 동천왕이 왕위에 올랐을 때는 오나라와 우호관계를 유지하였고 충신들과 평안한 나라를 만드는데 힘을 쏟았다고 하네요. 하지만 234년에 위와 화친하면서부터 정세는 180도 바뀌기 시작합니다. 238년 위가 요동의 공손연을 토벌할 때 군사 천여명을 보내 위를 도았지만 이는 두 나라의 국경이 맞닿는 것을 의미하였습니다. 30대의 젊은 기상으로 위나라와 싸워 서안평을 함락하였고 이 기세를 몰아 계속 전쟁 준비를 하였습니다. 하지만 대장이었던 득래는 ..

교육/국사 2016.11.28

[고구려 9대, 10대 왕] 두 번의 국모 우씨, 남편 고국천왕을 죽이고 산상왕과 재혼하다.

두 번의 국모 우씨, 남편 고국천왕을 죽이고 산상왕과 재혼하다. 고구려의 9대 왕은 고국천왕(179~197)이며 10대 왕은 산상왕(197~227)입니다. 그런데 고국천왕과 산상왕은 부인이 같습니다. 바로 두 번 국모를 한 우씨입니다. 고국천왕은 가난한 사람들에게 곡식을 빌려 주었다가 가을 추수가 끝난 후에 되갚게 하는 ‘진대법’을 실시한 왕입니다. 진대법은 농민 출신 재상인 을파소가 의견을 낸 것을 다른 신하들의 반대에도 불구하고 고국천왕이 힘을 실어 진행할 수 있었던 것입니다. 이러한 고국청왕은 그의 아내 왕후 우씨에 의해 비명횡사합니다. 왕후 우씨는 귀족들이 권력에서 멀어지고 을파소 등의 재야출신이 힘을 얻는 것을 시기하여 반란을 일으킵니다. 197년 5월 봄에 비명횡사한 고국천왕의 죽음은 후계자였..

교육/국사 2016.11.28
반응형