C++

    [실1] 1932 - 정수 삼각형

    #include #include using namespace std; int arr[501][501]{ 0 }; int dp[501][501]{ 0 }; int main() { int n; cin >> n; for (int i = 1; i arr[i][j]; dp[1][1] = arr[1][1]; for (int i = 2; i

    [실3] 15650 - n과 m(2)

    #include #include using namespace std; #define MAX 9 int n, m; int arr[MAX]{ 0 }; bool visited[MAX]{ 0 }; void dfs(int num, int depth) { if (depth == m) { for (int i = 0; i < m; i++) cout m; dfs(1, 0); }

    [실3] 15649 - n과 m(1)

    #include using namespace std; #define MAX 9 int n, m; int arr[MAX]{ 0 }; bool visited[MAX]{ 0 }; void dfs(int depth) { if (depth == m) { for (int i = 0; i < m; i++) cout m; dfs(0); }

    [골5] 7569 - 토마토

    #include #include #include #include #include #include #include #include using namespace std; using int_pair = pair; #define SIZE 1000 #define y first #define x second // 윗층 뒤 우 아래층 잎 좌 pair arr_pos[] { {1, {0, 0}}, {0, {-1, 0}}, {0, {0, 1}}, {-1, {0, 0}}, {0, {1, 0}}, {0, {0, -1}} }; vector graph; // w:넓이, h:높이, l:층수 int w, h, l; queue q; void BFS() { #define ARR_POS_SIZE 6 while (!q.empty()) { ..

    [골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..

    [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..

    C++ 연산자 오버로딩

    좌측 값 그대로 변경된 상태에서 반환 시 불필요한 복사 방지하기 위해 무조건 & 레퍼런스로 반환할 것. #include #include #include #include using namespace std; class Test; bool SAFETY_CHECK(Test& t) { if (&t == NULL) { cout

    [골3] 2812 - 크게 만들기

    #include #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, k; string str; vector v; cin >> n >> k >> str; for (int i = 0; i 0 && !v.empty() && v.back() < str[i]) { v.pop_back(); k--; } v.push_back(str[i]); } while (k--) v.pop_back(); for (int i = 0; i < v.size(); i..

    [플5] 16496 - 큰 수 만들기

    정렬 함수 3번째 인자 _Pred 람다 함수로 깔끔하게 해결 #include #include #include #include #include using namespace std; #define SIZE 1000 int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string arr[SIZE]; int n; cin >> n; cin.ignore(); int flag = 0; for (int i = 0; i > arr[i]; if (arr[i] != "0") flag = true; } if (!flag) cout str2 + str1; }); cout

    [실1] 2583 - 영역 구하기 bfs

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