![[백준 C++] 21736 : 헌내기는 친구가 필요해](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwbfdQ%2FbtsNsEuksBU%2FVTjaNkOnmsgiLD4qQaGs81%2Fimg.png)
https://www.acmicpc.net/problem/21736DFS BFS다 가능한 문제이다.입력으로 주어진 맵에 따라서 돌아다니며 방문할 수 있는 위치에 있는 P의 갯수를 찾으면 된다.전형적인 탐색 문제이므로 아는 방식 그대로 적용해서 풀면 된다.#include #include #include using namespace std;int dx[] = { 1, 0, -1, 0 };int dy[] = { 0, 1, 0, -1 };vector> campus;int N, M;void calculate(int startY, int startX) { int ans = 0; queue> que; que.push(make_pair(startY, startX)); campus[startY].at(startX) = ..
![[백준 C++] 1541 : 잃어버린 괄호](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcT0B1u%2FbtsNsOjEwX8%2FAFmiOf9lr6KvkZ2TG2tDFK%2Fimg.png)
https://www.acmicpc.net/problem/1541연산자가 +와 -로만 구성되어 있다.괄호는 자유롭게 사용할 수 있으므로 가장 작은 수를 만든다고 하면 작은 수에서 큰 수를 빼주면 된다. 여기서 큰 수를 빼주는 방법은 간단하게 첫번째로 나오는 마이너스 연산자의 뒤에 있는 숫자를 다 묶어서 더해주면 된다. 즉 이 문제의 포인트는 첫번째로 나오는 마이너스를 찾아주는 것이다.#include #include using namespace std;int calculate(string input){ string temp; int sum = 0; bool bMinus = false; for (int i = 0; i > input; cout stoi로 숫자들을 뽑아주다가 마이너스 연산자가 나오면 bool ..
![[Unity C#] 자연스럽게 등장하는 UI 애니메이션 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtaGOR%2FbtsNsc6CcXX%2FChXobxIciZqYkSDBXyma90%2Fimg.png)
게임에서 UI 요소가 갑자기 "툭!" 하고 뜨는 것보다, 자연스럽게 슬라이드 되며 등장하면 훨씬 깔끔할 것이다.화면 바깥에서부터 슬라이드 인(Slide-In) 되는 애니메이션을 간단한 C# 스크립트로 구현해보자.https://zeniff.tistory.com/88 [Unity C#] Dynamic Menu에 따른 카메라 움직임 구현World Makers에서 제작한 Deceit2 라는 게임의 메인메뉴 구성이 너무 마음에 들었다.이를 필자의 프로젝트에 적용한 방법을 적어본다시작하기에 앞서메뉴 선택에 따라 카메라가 특정 공간으로 부드zeniff.tistory.com이전 글에서 Menu를 따라 카메라가 움직이게 되는데, 이와 함께 자연스럽게 UI가 화면 바깥에서 슬라이드 인 되면서 들어오게 할 것이다. 구성 요..
![[Unity C#] Dynamic Menu에 따른 카메라 움직임 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fco4htn%2FbtsNrr92tIQ%2FIO5GPvYJqafrGyTGOLmDPK%2Fimg.png)
World Makers에서 제작한 Deceit2 라는 게임의 메인메뉴 구성이 너무 마음에 들었다.이를 필자의 프로젝트에 적용한 방법을 적어본다시작하기에 앞서메뉴 선택에 따라 카메라가 특정 공간으로 부드럽게 이동하면서 공간이 전환되는 다이내믹한 메뉴를 만들고 싶었다.Deceit2의 메뉴 구성을 참고하여 필자의 프로젝트에 다음과 같이 구현해보았다. 위에 Setting과 Exit는 공간을 채우기 위한 용도이고, 플레이 와 장비 탭으로만 구현을 하였다. 다음과 같이 각각의 기능을 넣어둔 여러개의 캔버스가 존재한다.상단 Canvas_Bar에서 버튼을 누를 때마다 카메라 이동 및 메뉴 표시가 될 것이다.카메라 이동 애니메이션 구현배경은 다음과 같은 맵을 준비하였다. 프로젝트 창에서 마우스 우클릭 > Create ..
![[Unity C#] 씬 이동 시 로딩 화면 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7AAH7%2FbtsMYqcB9i3%2FmfdZxPL5B8PAyhHxZBwY3K%2Fimg.png)
메인 화면에서 다른 씬으로 이동할 때, 게임이 멈춘 상태로 씬을 로딩하는 것보단 움직이는 로딩 화면을 보고 있는 것이 나을 것이다.이 로딩 화면 기능을 만들어보자유니티 에디터에서 준비필자가 만들 로딩 화면은 Scene 1 -> Scene 2 로 넘어갈 때, 중간에 로딩 Scene으로 넘어가는 것이 아닌 Canvas를 띄워 안보이는 뒷편에서 Scene2를 로딩하고 바로 이동하는 식으로 진행할 것이다.기본 씬 하이어라키에서인 화면에서 다른 씬으로 이동할 때, 게임이 멈춘 상태로 씬을 로딩하는 것보단 움직이는 로딩 화면을 보고 있는 것이 나을 것이다.이 로딩 화면 기능을 만들어보자유니티 에디터에서 준비필자가 만들 로딩 화면은 Scene 1 -> Scene 2 로 넘어갈 때, 중간에 로딩 Scene으로 넘어가는..
![[백준 C++] 18870 : 좌표 압축](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtZK7C%2FbtsML2jcaMs%2FK8o8CKKJtNsZTXlqO6hn7K%2Fimg.png)
https://www.acmicpc.net/problem/18870좌표 압축이란? 간단하게 말해서 존재하는 좌표 중 비교하는 자신보다 낮은 좌표의 갯수를 대신 출력하는 것이다. 입력이 2 4 1 3 이라고 하면 압축 시 1 3 0 2 가 되는 것이다.#include #include #include using namespace std;int main(){ vector list; vector solve; int N; cin >> N; for (int i = 0; i > temp; list.push_back(temp); solve.push_back(temp); } sort(solve.begin(), solve.end()); solve.erase(unique(solve.begin(), solve.end()..
![[Unreal Engine] 언리얼 엔진의 멀티 플레이 환경](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdT49D0%2FbtsMF6fywpx%2FfW2w6zptkyPF6pN7lKF8Kk%2Fimg.png)
https://zeniff.tistory.com/23 [Unreal Engine C++] Online Subsystem을 활용한 멀티플레이 구현언리얼에는 온라인 서브시스템 Steam API를 통해 만든 게임을 밸브의 스팀 플랫폼에 출시하는 것이 가능하다. 그 기능을 이용해서 멀티 기능을 만들어보자 시작하기 전 준비 Online Subsystem을 사용하zeniff.tistory.com이전에 이 글에서 Steam API를 이용해 멀티플레이 환경을 만들어보았다. 이번에는 근본적으로 접근하여 언리얼 엔진에서 어떤 식으로 멀티 환경을 관리하는지를 이해해보고 이를 정리해보고자 한다. 언리얼엔진에서의 멀티플레이 게임 프로젝트를 시작할 때 처음부터 멀티 플레이 환경을 생각하지 않고 싱글 플레이로만 가정하게 된다면 이..
![[백준 C++] 2805 : 나무 자르기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBGD3j%2FbtsMHx3EkL3%2FMvS1jzXyhwsvh2hXPC41A0%2Fimg.png)
https://www.acmicpc.net/problem/2805간단하게 생각해서 맨 위에서부터 잘라나가면 정답을 찾을 수 있지 않을까? 지만N, M의 범위가 굉장히 크기 때문에 시간 초과가 발생할 것이다. 그렇기 때문에 이분 탐색을 활용해 문제를 풀어야 한다.#include #include #include using namespace std;int N, M;vector list;int solve(){ int answer = 0; int minValue = 0; int maxValue = list[N - 1]; while (minValue midValue) sum += list[i] - midValue; } if (sum > M) { minValue = midValue + 1; ans..
![[Unreal Engine C++] 상호작용하여 Slot에 아이템을 추가하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZfDt0%2FbtsMDtN4UAI%2FjE1vi8dXz3CKHmF11DxDVk%2Fimg.png)
인터넷에 검색하면 나오는 Slot들은 모두 인벤토리를 활용한다.필자의 프로젝트에서는 인벤토리를 사용하지 않기 때문에 그 기능을 제외하고 Slot 기능을 제작해보자.아이템을 상호작용 하거나 얻게 될 시에 내 캐릭터가 장착하게 된다. 하지만, 인벤토리 기능이 없기 때문에 이를 직접 확인하고 적용해줘야 한다.아이템테이블 및 Slot 생성 일단 Slot에 장착되는 것들은 모두 아이템이기 때문에 이 정보들을 담고있는 데이터베이스가 필요하다.// ItemDataStructs.h#pragma once#include "CoreMinimal.h"#include "Engine/DataTable.h"#include "ItemDataStructs.generated.h"UENUM()enum class EItemType : ui..
![[백준 C++] 17626 : Four Squares](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAHU9w%2FbtsMyv1jyP6%2FG7x0K87iNkL2l5aNL78dP0%2Fimg.png)
https://www.acmicpc.net/problem/17626DP와 브루트포스를 사용하는 문제이다. 모든 수는 제곱수로 표현되기 때문에 접근을 다음과 같이 진행하였다.26일 경우는 1^2 + 25, 2^2 + 22 ...그렇게 수를 계산하면 남은 숫자 25, 22 등등이 생기는데, 그것은 다시 DP[25], DP[22] 등을 다시 진행하면 된다. 모든 제곱수를 수를 확인하였을 때, 가장 적은 수를 계속 저장하면서 값을 확인하면 된다.#include #include #include using namespace std;int main(){ vector list; int n; cin >> n; list = vector(n + 1, -1); for (int i = 1; i * i n을 입력받은 뒤, n보..