본문 바로가기

전체 글

(228)
백준 7562 나이트의 이동 1. 나이트 이동한 곳이 도착지가 아닌 이상 더 이상 나이트는 이동한 지점으로 다시 올 일이 없다. 다음 갈 곳들은 이미 q에 저장했다.#include #include #include #include #include using namespace std;int dx[8] = { 2, 2, 1, 1,-1,-1,-2,-2 };int dy[8] = { 1,-1, 2,-2, 2, -2, 1,-1 };struct Pos{ Pos() = default; Pos(int a, int b) : x(a), y(b) { } int x; int y; bool operator != (const Pos& other)const { if (x == other.x) { if (y == other.y) { return f..
백준 1260 Bfs, Dfs #include #include #include #include #include using namespace std;int N;int M;int V;void Bfs(vector>& ad){ queue q; vector visited(ad.size() + 1, false); q.push(V); cout >& ad, vector& visited,int start){ vector vec; vec.push_back(start); cout > N >> M >> V; vector> ad(N+1, vector(N+1, false)); for (int i = 0; i > a >> b; ad[a][b] = true; ad[b][a] = true; } vector visited(ad.size() + 1, false);..
백준 - 2178 미로탐색 1. parent 방식을 이용할 수 있지만 반복문을 한 번 더 돌기 때문에 시간초과가 난다. 거리 계산 방식을 이용해야한다.2. 방문을 다음 갈 곳을 찾았을때 바로 방문 했다고 알려줘야한다. 다음 이어지는 공간에서 중복되는 문제가 생긴다. 메모리 초과#include #include #include #include #include using namespace std;int dy[4] = { 0,0,1,-1 };int dx[4] = { -1,1,0,0 };struct Pos{ Pos(int X, int Y) { y = Y; x = X; } Pos() = default; int y; int x; bool operator> N >> M; int answer = 1; int arr[101][101]; int ..
상점 및 플레이어, 세이브게임 상점의 버튼을 눌렀을 때 골드가 구매 가능한 만큼 가지고 있다면 골드를 사용하여 플레이어 스탯을 상승시키고, 업그레이드에 필요한 골드량을 증가 시킵니다. 1. 게임 인스턴스가 골드, 플레이어 업그레이드 스탯, 버프 구매 골드량 등을 관리합니다.2. 세이브 게임 클래스가 골드 , 플레이어 업그레이드 스탯, 버프 구매 골드량 을 저장할 변수를 가지고 있습니다.3. 시작 메뉴 모드가 저장 변수들을 업로드하여 게임 인스턴스에게 알려줍니다.4. 플레이어는 생성자에서 게임 인스턴스로부터 업로드된 스탯들을 받아 업그레이드 됩니다.  1. 게임 인스턴스가 골드, 플레이어 업그레이드 스탯, 버프 구매 골드량 등을 관리합니다.  Save, Load 함수는 각각의 데이터들을 저장 불러오기 역할을 해줍니다.    2. 세이브..
방 입장 및 클리어 이벤트 해당 구현은 제가 아닌 같은 팀원이 만들었습니다. 1. 방 입장 시 몬스터가 스폰됩니다.2. 몬스터를 전부 죽이면 다음 방으로 넘어갈 수 있도록 문이 열립니다. 실제로 문이 올라가는 역할을 하는 BP_Door 클래스.문들과 몬스터 스포너를 가지는 BP_Room 클래스가 있습니다. BP_Door 설명실제 문을 열고 닫는 역할을 합니다.    BP_Room 설명 실제 몬스터 스폰 및 문과 관련 로직의 이벤트를 실행 시키는 클래스입니다.몬스터는 레벨에 미리 배치해두었고 Hidden 을 통해 몬스터를 숨겨놓고 플레이어가 방과 트리거가 일어나면 몬스터의 모습을 보이게 만듭니다.  몬스터 스포너와 문을 가지고 있습니다.  Room 클래스의 BeginPlay 에서 몬스터들의 모습을 숨깁니다. Tick 에서 몬스터들이..
Lerp 를 이용한 포물선 투사체 구현 Lerp 는 선형 보간으로 보통 직선 운동의 움직임을 보입니다.Lerp 를 3번 사용해서 곡선 운동을 구현했습니다.   위는 언리얼 cpp 에서 Lerp 를 이용한 곡사 운동을 구현한 코드입니다. 투사체가 생성된 시간 / 전체 발사 시간 을 보간 값으로 하여 3번의 Lerp 를 이용하여 포물선 움직임을 만들었습니다.  이제 곡사 움직임을 구현한 Bullet 클래스를 상속받은 BP 클래스에서처음 타겟 위치와 포물선의 최고 높이 전체 발사 시간을 정해주어 투사체 발사 시마다 높이를 랜덤하게 설정합니다.
프로그래머스 - 구명보트 #include #include #include using namespace std;int solution(vector people, int limit) { int answer = 0; int cachelimit = limit; sort(people.begin(), people.end()); int min = 0; int max = people.size()-1; while(min
24 - 08 - 23 (UPROPERTY, ACTOR 라이프 사이클, 모듈) UPROPERTY리플렉션이 가능하도록 만든다. 에디터와 상호작용이 가능해진다. 메타 지정자를 추가하여 여러 기능을 추가할 수 있다. https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers?application_version=4.27   ACTOR 라이프 사이클  블루프린트 함수 라이브러리이름에는 블루프린트가 들어가지만 c++ 에서도 사용가능하다.전역으로 함수를 만들어 모든 곳에서 사용가능하도록 설계한다.예로 특정 Controller 등을 가져올 때 이 기능을 사용할 수 있다. 아래는 특정 Actor 가 존재한다면 PlayerController 를 가져오겠다는 전역함수이다... 헤더#pragma once#include ..