주요 클래스 계층도

Programming/OGRE 3D 2013.04.01 20:27

 주로 사용하는 클래스 계층도..

정리가 되는데로 차근차근 분석할것이다.

 

신고

'Programming > OGRE 3D' 카테고리의 다른 글

주요 클래스 계층도  (0) 2013.04.01
[OGRE 3D]개발환경 구축 및 App wizard 설치  (1) 2013.02.05

[Algorithm] 징검다리 건너기

Programming/Algorithm 2013.02.13 01:03

Algorithm Description::

숫자가 쓰여진 징검다리를 건너는 경우 밟은 징검다리의 숫자 만큼의 돈을 지불하는 경우 최소의 돈으로 건너는 방법을 구하는 문제이다. ( ,2  까지 점프   있다고 하자.)


1. 징검다리가 2  있다면 징검다리를 하나도 사용하지 않고 건널수 있으므로 지불할 돈이 없고

2. 징검다리의수가 3 개이고 쓰여진 숫자가

1 9 3

    이면 번째 징검다리를 밟고 지나간다면 1 원으로 건너는게 최소이다.

3. 징검다리 수가 10  이고 쓰여진 숫자가 아래와 같다면

최소로 건널수 있는 비용은 2+2+1+2 = 7 이다.


입력 방법

입력의 첫째 줄에는 징검다리 (10000 이하인 양의 정수) 주어지고 , 다음 줄에는 차례대로 징검다리에 씌여진 숫자(100 이하인 양의 정수) 입력된다.

출력 방법

건널수 있는 최소 금액을 출력한다.

입출력 

입력

10

3 2 8 2 4 9 1 2 3 4

 

출력

7



Program Description::

이번 문제를 푸는 방법에는 재귀함수를 이용해서 푸는 방법과 동적프로그래밍을 이용하여 푸는 방법 두가지가 존재한다.

하지만 재귀함수는 n이 커짐에 따라 소요되는 시간이 기하급수적으로 늘어나 실질적으로 알고리즘을 풀이하는데에는 한계가 있다.

그래서 동적프로그래밍(Dynamic Programming)이라는 알고리즘 기법을 사용해 문제를 풀어보았다.



이 문제에서 최적해는 징검다리를 최소비용으로 건너는 값이다.

arr : 각 징검다리의 비용이 저장 되어있는 배열.

cost : 각 징검 다리까지 가기 위한 최소비용.

l : 각 징검다리로 가기위한 경우의 수 중 가장 적은 비용을 지불하는 징검다리.

    ( n = 4이면, n=3,n=2,n=1이 4번 징검다리로 갈수 있는 후보이다. 이 후보들중 cost가 가장 적은 징검다리 번호가 l배열에    저장된다.. ㅣ[4]는 2가 된다.)



ㅣ배열에 대해

좀더 자세히 설명하자면 10번 징검다리를 가기 위한 최소비용은 7번 징검다리를 밟는 것이고,

7번 징검다리를 가기 위한 최소비용은 4번, 4번을 가기위한 최소비용은 2번 징검다리가 될 것이다.

n=1,2,3이 x(안쓰는 )이유는 단순하다. l[1],l[2],l[3]을 가기위한 전 징검다리가 존재하지 않기때문(한번에 이동가능)이다.


이 문제의 해를 f라고 할경우 해에 도달 할수 있는 징검다리는 n,n-1,n-2가 될수 있을 것이고, 이것들의 최소비용이 징검다리를 건너는 

최소 비용이 될것이다. 

f = min(cost[n],cost[n-1],cost[n-2]);


동적프로그래밍과 재귀함수의 큰 차이점은 위 링크에 걸려있듯이, 값을 미리 저장하여 따로 계산할 것없이 테이블에서 빼서쓰냐,

다시 계산해서 쓰냐의 차이이다. (피보나치수열을 떠올려보자)


Program Code::






 

신고

'Programming > Algorithm' 카테고리의 다른 글

[Algorithm] 징검다리 건너기  (0) 2013.02.13
[Algorithm]BackTracking  (0) 2013.02.04

[OGRE 3D]개발환경 구축 및 App wizard 설치

Programming/OGRE 3D 2013.02.05 18:05

::Contents

1. OGRE 3D Download

2. OGRE 3D Build

3. 환경변수 설정.

4. VisualStudio 2010 Setting

5. App wizard설치

6. Test Example Application


1.OGRE3D Download

 LINK : http://www.ogre3d.org/download/sdk

 위 링크에서 VS버전에 맞는 SDK를 다운 받는다.


다운로드 받은파일을 실행하여 설치한다.

설치경로 : C:\


2.OGRE3D Build

-OGRE3D가 설치된 경로를 열어 OGRE.sin을 실행한다.

-프로젝트 탭에서 빌드 >> 일괄빌드 선택후 모두 빌드한다.


3.환경변수 설정

- SDK를 사용하기 위해서 환경변수를 사용하여야한다.

- 컴퓨터 >> 속성 >> 설정변경 >> 고급 >> 환경변수

- 변수이름 : OGRE_HOME

   변수 값   :  C:\OgreSDK_vc10_v1-8-1 (ogre3d가 설치된 파일경로)



4.VS2010 Setting

 - 새로운 프로젝트를 만든다. ( File -> New -> Project)




-프로젝트 >> 속성 >> 구성속성 >> 일반

 문자집합을 멀티바이트 문자집합으로 변경.

Image



프로젝트 >> 속성 >> 구성속성 >> 디버깅

명령 : $(OGRE_HOME)\Bin\$(Configuration)\$(ProjectName).exe

작업 디렉터리 : $(OGRE_HOME)\Bin\$(Configuration)


Image


프로젝트 >> 속성 >> C/C++ >> 일반 >> 추가 포함 디렉터리

$(OGRE_HOME)\include
$(OGRE_HOME)\include\OIS
$(OGRE_HOME)\include\OGRE
$(OGRE_HOME)\Samples\Common\include
$(OGRE_HOME)\boost


Image



프로젝트 >> 속성 >> C/C++ >> 일반 >> 추가 포함 디렉터리
$(OGRE_HOME)\lib\$(Configuration)
$(OGRE_HOME)\boost\lib


Image


프로젝트 >> 속성 >> 빌드이벤트 >> 빌드 후 이벤트 >> 명령줄

copy "$(OutDir)\$(TargetFileName)" "$(OGRE_HOME)\Bin\$(Configuration)"


Image


- 디버그모드 셋팅

구성을 디버그 모드로 변경을 한다.

Image


프로젝트 >> 속성 >> 링커 >> 입력 >> 추가 종속성 (Debug 모드)

디버그에 관련된 라이브러리를 추가한다.
OgreMain_d.lib
OIS_d.lib


Image



프로젝트 >> 속성 >> 링커 >> 입력 >> 추가종속성 (Release 모드)

프로젝트 구성을 디버그모드에서 릴리즈모드로 변경한다.

그런다음 릴리즈모드 라이브러리 파일을 추가한다.

OgreMain.lib
OIS.lib


Image


5.App wizard설치

- 위와 같은 방법은 프로젝트를 생성할때마다 복잡한 절차를 거쳐야 한다.

  하지만 sdk를 설치한 후 app wizard를 사용하면 저런 셋팅을 해줄 필요가 없이 간편하게 사용할 수 있다.

- Download : http://www.ogre3d.org/forums/viewtopic.php?f=5&t=54819

-설치 후 visualstudio 프로젝트를 생성하면 아래와 같이 OGRE Application이라는 메뉴가 생성된다.


6.Test Example Application

  - 프로젝트 구성을 아래와 같이 하고 프로그램을 실행 시키면 OGRE Head가 랜더링 된다.



::REFERENCE

- OGRE3D WIKI

:http://www.ogre3d.org/tikiwiki/tiki-index.php

:http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Basic+Tutorial+1&structure=Tutorials

- Direct X setup

: OGRE는 기본적으로 Driect X나 OpenGL기반으로 랜더링되기때문에 둘 중 하나 이상의 라이브러리를 설치해 주어야 한다.

: direct x sdk download : http://www.microsoft.com/en-us/download/details.aspx?id=4064



신고

'Programming > OGRE 3D' 카테고리의 다른 글

주요 클래스 계층도  (0) 2013.04.01
[OGRE 3D]개발환경 구축 및 App wizard 설치  (1) 2013.02.05