[백준 / BOJ] 2531 회전 초밥 C++
·
알고리즘/투포인터
문제 설명https://www.acmicpc.net/problem/2531투 포인터 문제 - 구간이 k로 고정되어있으므로 슬라이딩 윈도우 사용 회전 초밥 음식점에는 회전하는 벨트 위에 여러 가지 종류의 초밥이 접시에 담겨 놓여 있고, 손님은 이 중에서 자기가 좋아하는 초밥을 골라서 먹는다. 초밥의 종류를 번호로 표현할 때, 다음 그림은 회전 초밥 음식점의 벨트 상태의 예를 보여주고 있다. 벨트 위에는 같은 종류의 초밥이 둘 이상 있을 수 있다.새로 문을 연 회전 초밥 음식점이 불경기로 영업이 어려워서, 다음과 같이 두 가지 행사를 통해서 매상을 올리고자 한다.원래 회전 초밥은 손님이 마음대로 초밥을 고르고, 먹은 초밥만큼 식대를 계산하지만, 벨트의 임의의 한 위치부터 k개의 접시를 연속해서 먹을 경우 할..
[백준 / BOJ] 2003 수들의 합 2 C++
·
알고리즘/투포인터
문제 설명투 포인터 문제입니다. N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오.제한 사항입력첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.출력첫째 줄에 경우의 수를 출력한다.풀이1) sum이 M과 같을 때 ㄴ ans++; sum += arr[++right];2) sum이 M보다 크거나 같을 때 ㄴ sum -= arr[left++]; 3..
[Graphics] GameObject, Transform, Component
·
게임개발/Graphics
[결과물 미리보기] 회전하며 날아가는 햄스터 ^^ *현재 Game.cpp를 여러 파일로 분리해놓은 상태 #pragma once#include "pch.h"/* GameObject * : 3D 게임 오브젝트를 구성하는 기본 클래스 * 정점/인덱스 데이터, 버퍼, 셰이더, 텍스처, 렌더링 상태 등을 관리하고 * Update/Render 함수를 통해 매 프레임 업데이트 및 렌더링을 수행한다. */class GameObject{public: GameObject(ComPtr device, ComPtr deviceContext); ~GameObject();public: void Update(); void Render(std::shared_ptr pipeline);private: ComPtr _device;..
[Graphics] SimpleMath 실습
·
게임개발/Graphics
Matrix를 이용하여 실시간 위치 변경 영상 // Game.hprivate: /* Constant Buffer */ TransformData _transformData; ComPtr _constantBuffer; /* SRT */ Vec3 _localPosition = { 0.f, 0.f, 0.f }; Vec3 _localRotation = { 0.f, 0.f, 0.f }; Vec3 _localScale = { 1.f, 1.f, 1.f };// Game.cppvoid Game::Update(){ _localPosition.x += 0.001f; // Create SRT Matrix scaleMatrix = Matrix::CreateScale(_localScale / 3); Matrix rotatio..
[Graphics] SimpleMath
·
게임개발/Graphics
프로젝트 세팅위 파일들을 그래픽스 파일 경로로 가져온다. // Types.h#pragma once#include #include "DirectXMath.h"#include "SimpleMath.h"using int8 = __int8;using int16 = __int16;using int32 = __int32;using int64 = __int64;using uint8 = unsigned __int8;using uint16 = unsigned __int16;using uint32 = unsigned __int32;using uint64 = unsigned __int64;/* DirectX Math, XMFLOATN = N개의 float로 구성 *///using Vec2 = DirectX::XMFLOAT2..
[Graphics] 행렬
·
게임개발/Graphics
이번에는 pdf로 준비했습니다. 공부한 내용 끄적인 정도라 보기 어려우실 수 있습니다
[Graphics] RasterizerState, SampleState, BlendState
·
게임개발/Graphics
// Game.h private: /* RasterizerState 생성 - 삼각형을 화면에 어떻게 그릴지 설정 (채우기 모드, 컬링, 앞면 방향 등) */ void CreateRasterizerState(); /* Sampler State 생성 - 픽셀 셰이더에서 텍스처 좌표(UV)를 어떻게 샘플링할지 설정 (보간 방식, 경계 처리 방식 등) */ void CreateSamplerState(); /* Blend State 생성 - 픽셀이 렌더 타겟에 출력될 때, 기존 픽셀과 새 픽셀을 어떻게 섞을지 설정 (투명도, 알파 블렌딩 등 처리 방식) */ void CreateBlendState(); private: /* Rasterizer State ..
[Graphics] Constant Buffer
·
게임개발/Graphics
Constant Buffer를 이용해 행렬정보(지금은 offset)를 매 프레임마다 한번에 업데이트함 Constant Buffer: GPU 셰이더에 자주 바뀌는 데이터를 빠르고 효율적으로 전달하기 위한 구조체 기반 메모리 블록. [Constant Buffer 사용 X]deviceContext->VSSetShaderConstantF(0, world.m, 4); // world matrixdeviceContext->VSSetShaderConstantF(4, view.m, 4); // view matrixdeviceContext->VSSetShaderConstantF(8, projection.m, 4); // projection matrix: 매 프레임마다 셰이더에 개별 데이터(행렬, fl..