목록분류 전체보기 (156)
DOTY
DirectXMath 라이브러리를 활용한 행렬 XMMATRIX 4X4 행렬을 사용할 때 XMMATRIX를 사용한다. 행렬을 한번에 처리할 수 있고 이 또한 SIMD를 활용한다. XMFLOAT4X4형식을 사용하는 것을 권장한다. 행렬 입력 // 기본적으로 행렬은 네 개의 XMVECTOR로 표현한다. (SIDM활용) XMVECTOR r[4]; // 행벡터 네 개를 지정하여 초기화 할 수 있다. XMMATRIX (FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, FXMVECTOR R3); // 성분 16개를 직접 지정해서 초기화 할 수 있다. XMMATRIX (float m00, float m01, float m02, float m03, float m10, float m11, floa..
9663번: N-Queen (acmicpc.net) 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 몇 주 전에 하려다가 머리가 안 굴러가서 포기했던 문제. #include using namespace std; int N; int answer; int check(int chess[15][15], int x, int y) { int tmp_X = x-1; int min = y-x; int sum = x+y; while(tmp_X >= 0) { if(min + tmp_X >= 0) { if(chess[tmp_X][min + tm..
DirectXMath 라이브러리를 활용한 벡터 XMVECTOR XMVECTOR은 128비트의 32비트의 부동소수점 값 네 개로 구성된다. 벡터를 한번에 처리할 수 있다. (x, y, z, w - 4차원) 이 대신 XMFLOAT2, XMFLOAT3, XMFLOAT4를 사용하도록 권장하지만 계산을 직접 한다면 SIMD의 장점을 가질 수 없다. 따라서 XMVECTOR 형식으로 변환한다. 벡터 적재, 저장 함수 // 적재하는 함수 XMVECTOR XM_CALLCONV XMLoadFloat2(const XMFLOAT2 *pSource); XMVECTOR XM_CALLCONV XMLoadFloat3(const XMFLOAT3 *pSource); XMVECTOR XM_CALLCONV XMLoadFloat4(const..

Win32 프로젝트 만들고 테스트를 했다. Visual Studio 2022 기준으로 작성했다. 1. VS Installer 2. 데스크톱 마법사 찾기 새 프로젝트를 데스크톱 마법사로 선택. 이름을 정하고 나면 위와 같은 창이 뜨는데 데스크톱 애플리케이션으로 바꿔줄 것. 예제를 위해서 빈 프로젝트로 설정했다. 3. 예제를 옮기고 테스트 위의 화면처럼 뜨면 성공. 좌클릭으로 회전, 우클릭으로 확대/축소를 할 수 있다. 학교에서 OpenGL처음 배우는 느낌이다.. 호호 ※ &에 l-value가 있어야 합니다 원래는 코드를 좀 수정해야 하지만 책에서 배우는 예제 코드를 다 수정할 수 없는 노릇.. 프로젝트 속성에서 C/C++ 👉 언어 로 들어가서 준수 모드를 끄자. 수정하고 싶다면 좌변값, 우변값에 대해서 오..
1707번: 이분 그래프 (acmicpc.net) 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 뻘짓해서 좀 걸렸던 문제.. #include using namespace std; int check[20001]; int flag; // 0 : NO , 1 : YES vector graph(20001); // div : 1 or 2 void dfs(int vertex, int div) { if(flag == 0) { return; } int size = graph[vertex].size(); check[vert..
2665번: 미로만들기 (acmicpc.net) 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1 ≤ n ≤ 50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net #include using namespace std; int N; int x_p[4] = {0, 0, 1, -1}; int y_p[4] = {1, -1, 0, 0}; int room[50][50] = {0, }; int check[50][50] = {0, }; void bfs() { queue q; int x, y; q.push(make_pair(0, 0)); check[0][0] = 0; while(!q.empt..

언리얼 엔진을 공부하다가 갑자기 찾아온 문제.... 다음과 같은 방법을 시도했다. 1. Plugin 변경 프로젝트가 있는 폴더로 들어가서 ".uproject" 파일을 Visual Code로 열었다. Enabled : true 를 false로 바꿔봤다. 하지만 해결하지 못했다. 2. Log 확인 각 프로젝트 파일을 찾아보면 Saved -> Log로 들어가보면 로그를 확인할 수 있다. dotnet을 보고 어라..? 했다. 분명 엄청 받았는데... 왜 안될까.. 해서 검색을 더 해봤다. 3. .NET 설치 .NET SDKs downloads for Visual Studio (microsoft.com) .NET SDKs downloads for Visual Studio Download .NET SDKs for ..
1520번: 내리막 길 (acmicpc.net) 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net 시간이 생각보다 좀 걸렸던 문제... DFS와 Memoization을 사용했던 문제인데 2년 전에 공부한 것을 다 까먹었다..ㅠㅠㅠ #include using namespace std; int x_p[4] = {0, 1, 0, -1}; int y_p[4] = {1, 0, -1, 0}; int road[500][500]; int memo[500][500]; int M, N; int dfs(int x, int y) { if..
12100번: 2048 (Easy) (acmicpc.net) 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 문제는 Easy라고 적혀있지만 나는 Easy하지 않았던 문제... 머리가 안돌아가서 몇 시간 풀어봤지만 정답 보기에는 너무 아쉬워서 계속 시도한 문제... 내가 이겼다. 흐헤헤 #include using namespace std; int N; int max_no; void play(int board[][20], int cnt); // 1. 위로 void playUp(int b..
13023번: ABCDE (acmicpc.net) 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net #include using namespace std; int fri[2000]; int check[2000]; int answer; vector con; void backtracking(int people, int cnt) { if(cnt == 5) { answer = 1; return; } check[people] = 1; for(int i = 0; i < con[people].size(); i++) { if(check[con[people][i]] == 0) { backtracking(con[people][i], cn..