트리 순회 (전위 순회, 중위 순회, 후위 순회)
·
C++/코딩 테스트
#include using namespace std;char tree[26][2]; // 각 노드의 왼쪽/오른쪽 자식 저장void preorder(char node) { if (node == '.') return; cout > N; for (int i = 0; i > parent >> left >> right; tree[parent - 'A'][0] = left; tree[parent - 'A'][1] = right; } preorder('A'); cout
C++ 삽입 정렬과 퀵 정렬 학습
·
C++
// quicksort.cpp#include #include #include #include #include #include // --------- 유틸리티: insertion sort (작은 구간 최적화) ----------templatevoid insertion_sort(std::vector& a, int l, int r) { for (int i = l + 1; i = l && a[j] > key) { a[j + 1] = std::move(a[j]); --j; } a[j + 1] = std::move(key); }}// --------- 유틸리티: median-of-three pivot index ----------templa..
Direct X 11 Vertex Shader Stage
·
DirectX 11
정점 세이더 단계 Vertex Shader Stage목적 1. 정점 데이터의 변환 및 처리 주요 함수CreateVertexShaderHRESULT CreateVertexShader( [in] const void *pShaderBytecode, [in] SIZE_T BytecodeLength, [in, optional] ID3D11ClassLinkage *pClassLinkage, [out, optional] ID3D11VertexShader **ppVertexShader);1. const void* : 컴파일된 셰이더에 대한 포인터2. SIZE_T : 컴파일된 꼭짓점 셰이더 크기3. ID3D11ClassLinkage* ..
Direct X 11 Input Assembler Stage
·
DirectX 11
입력 조립 단계 Input Assembler Stage목적 1. 정점 버퍼로부터 정점 데이터(프리미티브 데이터)를 다른 파이프라인 단계에서 사용할 프리미티브로 조립2. 시스템 생성 값 추가 -> 시맨틱 시스템 생성 값 : 프리미티브 ID, 인스턴스 ID, 정점 ID 과정1. 입력버퍼(정점 버퍼 또는 인덱스 버퍼) 객체를 생성2. 입력 레이아웃 객체 생성. 입력 레이아웃 객체는 정점 버퍼의 한 원소의 구조를 나타낸다.3. 입력 버퍼와 입력 레이아웃 객체를 입력 조립 단계에 연결한다.4. 프리미티브 유형을 지정한다. 입력 조립단계는 입력 데이터를 이 프리미티브로 조립한다.5. 그리기 함수를 호출한다. 입력 조립 단계는 조립한 데이터와 시스템 생성값을 Direct3D 파이프라인으로 전달한다. 주요 함수C..
Direct X 11 기초 개념 학습
·
DirectX 11
그래픽 파이프라인그래픽 파이프라인 - Win32 apps | Microsoft Learn 그래픽 파이프라인 - Win32 apps이 섹션에서는 Direct3D 11 프로그래밍 가능 파이프라인에 대해 설명합니다.learn.microsoft.com Direct3D 11 그래픽 파이프라인은 Direct3D 10 그래픽 파이프라인 동일한 단계를 지원 + 고급 기능 지원 세이더 코어는 HLSL 프로그래밍 언어를 사용해 프로그래밍 가능 Input Assembler IA : GPU가 처리할 정점 데이터(Vertex)와 인덕스 데이터를 조립(Assemble)Direct X 11 Input Assembler Stage — 게임 개발 공부기1. Vertex Buffer, Index Buffer 설정2. Primitiv..
알고리즘 속도 체크 C++
·
C++/코딩 테스트
#include // 시간을 위해 사용하는 헤더 파일int main(){ clock_t start; clock_t end; start = clock(); // 시작 시간을 받아옴 /** 알고리즘 실행 */ end = clock(); // 마무리 시간을 받아옴 cout((end-start)/CLOCKS_PER_SEC); // 시간을 출력 return 0;}