반응형

분류 전체보기 2987

[C언어 알고리즘] 7.3 프림(Prim) 알고리즘(최소신장트리 알고리즘)

[C언어 알고리즘] 7.3 프림(Prim) 알고리즘(최소신장트리 알고리즘) 신장트리는 비중있는 그래프 상에서 정점과 정점 사이에 경로를 단일화한 트리를 말합니다. 그리고 최소신장트리는 정점과 정점 사이의 경로의 합이 최소인 신장트리를 말합니다. 그래프에서 최소신장트리를 만드는 여러가지 방법 중에 가장 많이 알려진 방법으로는 프림 알고리즘과 크루스칼 알고리즘이 있습니다. 프림 알고리즘은 정점을 추가하면서 트리를 확장하는 방법이고 크루스칼 알고리즘은 간선을 추가하면서 최소신장트리를 만드는 방법입니다. 먼저 프림 알고리즘을 살펴봅시다. 프림 알고리즘(graph:원본 그래프) 하나의 정점을 선택한다. 반복(선택한 정점 개수가 graph의 정점 개수보다 작다면) 선택한 정점에서 갈 수 있는 모든 정점 중에 최소 ..

[C언어 알고리즘] 7.2 SJF(Shortest Job First) 알고리즘

[C언어 알고리즘] 7.2 SJF(Shortest Job First) 알고리즘여러 개의 작업을 하나의 CPU에서 수행하는 순서를 결정하는 스케쥴링 알고리즘은 여러가지 방법이 있습니다. 그 중에서 작업을 수행 요청하고 실제 수행이 끝날 때까지 대기하는 평균 시간을 최소로 하는 알고리즘은 SJF(Shortest Job First)알고리즘입니다. SJF 알고리즘은 작업량이 작은 작업을 먼저 수행하는 알고리즘입니다. 동시에 n개의 작업을 수행 요청이 왔다가 가정합시다. n번째 수행할 작업의 길이를 An이라고 한다면 모든 작업을 수행하는데 걸리는 비용은 다음과 같습니다. A1 + (A1 + A2) + (A1 + A2 + A3) + ... + (A1+A2+A3+...+An) = nA1 + (n-1)A2 + (n-2..

[C++ 무료 동영상 강의] 28. 파생 개체의 생성과 소멸 과정

[C++ 무료 동영상 강의] 28. 파생 개체의 생성과 소멸 과정다루는 내용상속,파생 개체의 생성과 소멸 과정, 기반 형식에 적적한 기본 생성자가 없습니다. 오류메시지 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 28. 파생 개체의 생성과 소멸 과정

[C++ 무료 동영상 강의] 27. 상속(일반화 관계) 개요

[C++ 무료 동영상 강의] 27. 상속(일반화 관계) 개요 다루는 내용상속,일반화 관계,기반 클래스, 파생 클래스 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 27. 상속(일반화 관계) 개요

[C언어 알고리즘] 7.1.1 거스름 돈 알고리즘 소스 코드

[C언어 알고리즘] 7.1.1 거스름 돈 알고리즘 소스 코드 //거스름 돈 (탐욕 알고리즘) //Program.c #include typedef enum _MType MType; enum _MType { One=1, Five=5, Ten=10, Fifty=50,Hun=100, FHun=500,Thous=1000,FTh=5000, TenTh=10000, FTenTh=50000 }; void Calculate(MType money,int value) { int remain = money - value; int ftenth=0,tenth=0, fth=0, thous=0; int fhun=0,hun=0, fifty=0, ten=0, five=0, one=0; printf("가격:%d, 받은 돈:%d\n",mon..

[C언어 알고리즘] 7.1 거스름 돈 알고리즘

[C언어 알고리즘] 7.1 거스름 돈 알고리즘 물건을 팔고 가장 적은 개수로 거스름 돈을 주려면 어떻게 해야 할까요? 큰 단위의 돈을 주는 것이 작은 단위로 주는 것보다 유리하겠죠. 탐욕 알고리즘으로 문제를 해결한다면 큰 단위부터 거스름돈을 주게 전개합니다. 큰 단위 화폐부터 작은 단위 화폐 순으로 다음의 알고르즘을 전개합니다. 만약 단위보다 거슬러 줘야 할 돈이 많으면 몇 개를 줄 것인지를 결정합니다. 그리고 남은 돈은 다음 단위 화폐로 넘어가서 계산합니다. 이러한 방법을 계속 수행하면 가장 적은 개수로 거스름 돈을 지불할 수 있습니다. #include 먼저 화폐 단위를 열거형으로 정의합시다. typedef enum _MType MType; enum _MType { One=1, Five=5, Ten=1..

[C언어 알고리즘] 7. 탐욕(Greedy) 알고리즘

[C언어 알고리즘] 7. 탐욕(Greedy) 알고리즘 탐욕(Greedy) 알고리즘은 커다란 문제를 해결하기 위해 여러 단계를 나누어 해결하는 알고리즘의 하나입니다. 동적 알고리즘에서는 현 단계에서 다음 단계로 갈 수 있는 모든 경험을 수행하면서 문제를 해결하였습니다. 하지만 탐욕 알고리즘은 현 단계에서 갈 수 있는 다음 단계들 중에 최적이라고 판단하는 하나의 단계만 수행합니다. 따라서 현 단계에서 다음 단계로 갈 수 있는 모든 경험 중에 무엇을 선택할 것인지 결정하는 것이 중요합니다. 그런데 매 순간 최적이라고 판단하는 다음 단계를 선택하면서 전체 문제를 해결하였을 때 이 해결 방법이 전체 문제에 최적일 수도 있지만 최적이 아닐 수도 있습니다. 따라서 가치있는 탐욕 알고리즘은 매 순간 최적이라고 판단하면..

[C++ 무료 동영상 강의] 26. 캡슐화 최종 실습 – 구체적 구현

[C++ 무료 동영상 강의] 26. 캡슐화 최종 실습 – 구체적 구현다루는 내용캡슐화 실습,설정자 메서드, 학생 클래스 구현 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 26. 캡슐화 최종 실습 – 구체적 구현

[C++ 무료 동영상 강의] 23. 캡슐화 최종 실습 – 멤버 필드 24. 캡슐화 최종 실습 – 멤버 메서드 25. 캡슐화 최종 실습 – 테스트 코드 작성

[C++ 무료 동영상 강의] 23. 캡슐화 최종 실습 – 멤버 필드 24. 캡슐화 최종 실습 – 멤버 메서드 25. 캡슐화 최종 실습 – 테스트 코드 작성다루는 내용캡슐화 실습,멤버 필드 결정,멤버 메서드 결정, 테스트 코드 작성 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 23. 캡슐화 최종 실습 – 멤버 필드 [디딤돌 C++] 24. 캡슐화 최종 실습 – 멤버 메서드[디딤돌 C++] 25. 캡슐화 최종 실습 – 테스트 코드 작성

[C++ 무료 동영상 강의] 22. 캡슐화 최종 실습 – 시나리오

[C++ 무료 동영상 강의] 22. 캡슐화 최종 실습 – 시나리오 다루는 내용캡슐화 실습,시나리오, 개발 공정 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 22. 캡슐화 최종 실습 – 시나리오

반응형