분류 전체보기

    [골5] 7576 - 토마토

    #include #include #include #include #include #include #include #include using namespace std; using int_pair = pair; #define SIZE 1000 #define y first #define x second // 상 하 좌 우 int_pair arr_pos[] { { 1, 0}, {-1, 0}, {0, -1}, {0, 1} }; vector graph; // w:넓이, h:높이, k:테스트 개수 int w, h, k; queue q; void BFS() { while (!q.empty()) { auto front = q.front(); q.pop(); for (int i = 0; i < 4; i++) { int n..

    C# 전처리기의 모든것

    C 및 C++ 지시문과 달리, 매크로를 만드는 데는 해당 지시문을 사용할 수 없다. 전처리기 지시문은 한 줄에서 유일한 명령이어야 한다. Null 허용 컨텍스트 #nullable 전처리기 지시문은 null 허용 주석이 적용되는지와 null 허용 여부 경고가 지정되는지를 제어한다. 각 컨텍스트는 disabled 또는 enabled이다. 주석 및 경고 컨텍스트를 제어하고 프로젝트 수준 설정보다 우선으로 적용된다. 다른 지시문이 재정의할 때까지 제어하는 컨텍스트를 설정하거나 소스 파일의 끝까지 설정한다. 지시문의 효과는 다음과 같다. #nullable disable: null 허용 주석 및 경고 컨텍스트를 disabled로 설정한다. #nullable enable: null 허용 주석 및 경고 컨텍스트를 en..

    C/C++ 전처리기의 모든 것 (예외, 매크로, 토큰)

    전처리기 컴파일러는 사용자가 작성한 코드를 컴파일하기 전에 전처리문에서 정의해 놓은 작업들을 먼저 수행한다. 첫 문자는 항상 ‘#’으로 시작한다. ANSI 표준에 따른 C의 전처리문의 종류가 아래에 나와 있다. 파일 처리를 위한 전처리문 : #include 형태 정의를 위한 전처리문: #define, #undef 조건 처리를 위한 전처리문: #if, #ifdef, #ifndef, #else, #elif, #endif 에러 처리를 위한 전처리문: #error 디버깅을 위한 전처리문: #line 컴파일 옵션 처리를 위한 전처리문: #pragma #include 꺽쇠 괄호 솔루션 파일이 위치한 폴더가 아닌 타 폴더에 있을 시, 쌍 따옴표는 " " 같은 폴더에 있을 시 // 타 폴더 #include #inclu..

    UML 색상 관련

    핑크 : 순간 또는 시간차 간격. 예) 추후에 필요할 수도 있는 기능, 캐시 또는 기능 아이템. 노랑 : 롤 (핵심적인 기능) 기반인것들을 담당한다. 예) 플레이어가 피격시, hp 수치 변경 및 UI 변경. 파랑 : 부여설명. 예) 차량의 작동 방법 설명서. 초록 : 식별이 가능하고 모든 물리적인 것. 예) mmorpg 게임에서 유저 또는 dvd 대여점에서 dvd. 참고 : https://en.wikipedia.org/wiki/Object_Modeling_in_Color

    C# Action/Func/Predicate

    Action Delegate .NET의 Action delegate는 하나의 파라미터를 받아들이고, 리턴 값이 없는 함수에 사용되는 Delegate이다. Action delegate는 System 네임스페이스에서 제공되는데, 파라미터의 수에 따라 0개부터 16개의 파라미터까지 받아들이는 delegate가 있다. 즉, 파라미터가 없는 Action은 Action delegate, 파라미터가 1개인 Action delegate, 2개인 Action delegate - 이렇게 16개 파라미터가 있는 Action delegate가 존재한다. 많은 함수의 경우 대개 3~5개의 파라미터까지 있는 걸로 본다면, 상당히 많은 함수에 대한 표준 delegate를 미리 만들어 둔것으로 보면된다. 물론 중요한 특징은 리턴 값..

    컨테이너 어댑터 (스택, 큐, 우선순위 큐)

    컨테이너 어댑터(container adapter)란 기존 컨테이너의 인터페이스를 제한하여 만든 기능이 제한되거나 변형된 컨테이너를 의미한다. 이러한 컨테이너 어댑터는 각각의 기초가 되는 클래스의 인터페이스를 제한하여, 특정 형태의 동작만을 수행하도록 한다. 단, 반복자를 지원하지 않으므로 STL 알고리즘에서는 사용할 수 없다. 컨테이너 어댑터의 종류 STL에서는 컨테이너 어댑터로 다음과 같은 클래스 템플릿을 제공한다. stack queue priority_queue 스택(stack) 스택(stack) 컨테이너는 vector 클래스의 인터페이스를 제한하여, 전형적인 스택 메모리 구조의 인터페이스를 제공한다. 스택 컨테이너는 stack 헤더 파일에 정의되어 있다. 스택 메모리 구조는 선형 메모리 공간에 데이..

    [C++] Deque 데크

    데큐는 double-ended queue의 약어이다. 즉, 양방향으로 입출력이 가능한 큐이다. (큐는 한쪽방향으로만 입력이 가능하고 반대방향으로 출력이 가능하다). #include #include using namespace std; int main() { deque dq; for(int i = 1; i

    클래스 다이어그램 관계도

    클래스 다이어그램이란 시스템을 구성하는 클래스들 사이의 관계를 표현해주는 그림 도식. 클래스의 표현 클래스는 3가지 칸으로 구성된다. 가장 윗 부분에는 클래스 명이 들어가고, 중간 부분에는 속성(클래스의 특징, 변수)이 들어가고 마지막 부분에는 연산(메서드, 클래스가 수행하는 책임)이 들어간다. + public - private # protected 변수는 : 뒤에 타입 명시 함수는 (파라미터) : 반환값을 사용 Player + moveSpeed : float - moveDir : Vector3 # targetPosition : Vector3 - Move() : void + TraceTarget() : void const 변수 일땐 전체를 대문자로 표기, 함수는 단순히 파라미터 괄호 닫히는 부분 옆에 c..

    절두체 컬링 (Frustum Culling)과 클리핑 (Clipping)

    정의 3D 공간에는 다양한 오브젝트가 들어갈 수 있다. 360도로 오브젝트가 배치된 일반적인 상황이라 생각할 때, 시야 안에 있는 오브젝트는 전체 공간에 있는 오브젝트에 비해 굉장히 한정적이므로 절두체 컬링은 시야 밖에 있는, 렌더링 되지 않는 오브젝트를 걸러내기 위한 기법이다. 1. 여섯 개의 평면을 이용한 가장 기본적인 컬링 방식 카메라 시야 상, 하, 좌, 우 방향으로의 경계선이 되는 평면, 카메라 시야에 수직하며 가장 가까운 곳과 먼 곳의 시야 범위를 나타내는 평면으로 총 6개의 평면을 이용해 오브젝트가 절두체에 포함되는지를 계산하는 방식. 이름 정의 근평면(Near Plane) 카메라와 수직하며 제일 가까운 곳의 시야 범위를 나타내는 평면 원평면(Far Plane) 카메라와 수직하며 제일 먼 곳..

    [DX11 물방울책] 챕터 5 - 렌더링 파이프라인

    카메라의 위치와 비추는 방향을 가지고 있는 3D 화면 정보를 가지고 2D 이미지를 만드는 과정을 통틀어서 렌더링 파이프라인이라고 칭한다. 1. 3D 환각 어떻게 깊이와 볼륨을 지닌 3D를 2D 스크린에 그릴 수가 있을까? 그건 바로 상대적으로 멀리있는 사물을 더 작게 하는 것이다. 2. 모델 송출 3D 오브젝트는 예측된 삼각형 메쉬로 구성 되어있으며 이 연속적인 삼각형들이 폴리곤을 만든다. 모델의 퀄리티를 향상시키기 위해 삼각형 늘릴 수는 있겠으나 퍼포먼스 저하 우려가 있으므로 점이라던지 직선으로도 대체가 가능하다. 3. 컴퓨터 기본 색상 컴퓨터는 각 픽셀마다 (r,g,b,a)를 비춘다. // ARGB Color; 8-8-8-8 bit unsigned normalized integer components..