본문 바로가기

분류 전체보기

(231)
백준 - 7576 토마토 날짜 계산식을 따로 만들어야하는구나 생각했다.근데 아니었다. 걍 거리 계산하는거랑 똑같은거였다. 내가 생각이 많았다.  #include #include #include #include using namespace std;int dx[4] = { 0,0,-1,1 };int dy[4] = { -1,1,0,0 };struct Pos{ Pos() = default; Pos(int a, int b) : y(a), x(b) { } int x; int y; bool operator!= (const Pos& other)const { if (x == other.x) { if (y == other.y) { return false; } } return true; } bool operator== (co..
백준 - 1926 그림 #include #include #include #include using namespace std;int dx[4] = { 0,0,-1,1 };int dy[4] = { -1,1,0,0 };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 false; } } return true; } bool operator== (const Pos& other)const { return !(*this != other); } bool operator> ..
백준 : 5014 스타트링크 1. 출발지와 목적지가 같은 경우  #include #include #include #include using namespace std;int main(void){ int F, S, G, U, D; cin >> F >> S >> G >> U >> D; int answer = 0; vector vec(F + 1); vector parent(F + 1, -1); parent[S] = S; int arr[2] = { U,-D }; queue q; q.push(S); vector visited(F + 1, false); visited[S] = true; while (!q.empty()) { int pos = q.front(); q.pop(); for (int i = 0; i = F + 1) { ..
백준 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 에서 몬스터들이..