![[백준 C++] 24479 : 알고리즘 수업 - 깊이 우선 탐색 1](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE5vyw%2FbtsKDBOxcvc%2FS1G91V3RyFDkhviUQf0jXk%2Fimg.png)
https://www.acmicpc.net/problem/24479출력이 노드의 순서대로 출력함과 동시에 방문 순서를 적는 형식이다.#include #include #include using namespace std;vector> list;vector visitedOrder;int order = 1;void dfs(int start){ visitedOrder[start] = order; for (int i = 0; i > N >> M >> R; list = vector>(N + 1); visitedOrder = vector(N + 1, 0); for (int i = 0; i > u >> v; list[u].push_back(v); list[v].push_back(u); } for (int i = 0;..
![[백준 C++] 14889 : 스타트와 링크](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FssOzC%2FbtsKCUgK79l%2FT8MHwed8krHCx0vomczYi1%2Fimg.png)
https://www.acmicpc.net/problem/14889#include #include #include using namespace std;int N;vector> list;vector visited;int answer = INT_MAX;void calculate(){ int startVal = 0; int linkVal = 0; for (int i = 0; i linkVal ? startVal - linkVal : linkVal - startVal); return;}void generateTeam(int num, int idx){ if (num == N / 2) calculate(); for (int i = idx; i > N; list = vector>(N, vector(N, 0))..
![[백준 C++] 14888 : 연산자 끼워넣기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW1tYG%2FbtsKBlfdybu%2F4KxAFkVUZTl6qAaLjcmLek%2Fimg.png)
https://www.acmicpc.net/problem/14888DFS로 구현하였다.연산자 우선 순위를 무시하는 것, 나눗셈은 정수 나눗셈으로 몫만 취한다 등등 조건 덕분에 풀기 쉬운 문제이다.#include #include #include #include using namespace std;vector list;int maxValue = INT_MIN;int minValue = INT_MAX;int N;void calculate(int add, int sub, int mul, int div, int depth, int value){ if (depth == N) { maxValue = max(maxValue, value); minValue = min(minValue, value); return; ..
![[백준 C++] 1260 : DFS와 BFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiCHCT%2FbtsKCvOT9PK%2FlZfdxnKuhkoqf9ON5UznE0%2Fimg.png)
https://www.acmicpc.net/problem/1260주어진 입력에 맞춰 DFS와 BFS로 방문하는 순서 그대로 출력하면 되는 문제이다.#include #include #include #include using namespace std;bool visited[1001];vector graph[1001];void solution_dfs(int start){ visited[start] = true; cout que; que.push(start); visited[start] = true; while (!que.empty()) { int corrent = que.front(); que.pop(); cout > N >> M >> V; for (int i = 0; i > v1 >> v2; gra..
![[프로그래머스 C++] 동영상 재생기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrfOSQ%2FbtsJRFi2hDs%2F9fO0sJ99uREI9w3IXU8Yw1%2Fimg.png)
https://school.programmers.co.kr/learn/courses/30/lessons/340213간단한 문제같지만, 신경써야 할 조건이 좀 있다. (ex. 건너뛰기 시 현재 재생 위치를 확인)내용을 잘 읽어보고 그에 맞는 조건을 적어야 바로 넘어갈 수 있다.#include #include using namespace std;string solution(string video_len, string pos, string op_start, string op_end, vector commands) { string answer = ""; int temp = stoi(pos.substr(0, 2)) * 60 + stoi(pos.substr(3, 2)); int totalLen = ..
![[Unreal Engine BP] 캐릭터 카메라를 액터에 Close Up 하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzMo7J%2FbtsJOHKbIav%2F5DUjpYAW3dQywsIudJ3Lsk%2Fimg.png)
지금 현재 진행하고 있는 프로젝트에서 Note Actor를 클릭하고 레이드를 선택할 수 있는 기능을 만들어보고자 하였다.이를 위해 월드 상에 존재하고 있는 Actor를 마우스로 클릭할 수 있게 해서 Menu를 띄워보고자 한다.시작하기에 앞서 일단 사용할 RequestBoard라는 블루프린트 액터를 생성하였다.이 액터 자체에는 각각의 Note들이 달려있는데 플레이어가 클릭할 때 이 것들을 클릭할 수 있게 할 것이다.이 것들은 현재 글에서는 설명하지 않기 때문에 생략하도록 하겠다. RequestBoard에다가 상호작용을 하면, CloseUp을 진행할 수 있도록 Blueprint를 구성해보겠다.블루프린트 구성 - CloseUp을 하기 전 카메라 셋팅 상호작용 하여 Event가 실행되면, 캐릭터 카메라의 Loo..
![[Unreal Engine C++] Dash의 기능에서 개선된 Dodge의 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm7UKv%2FbtsI9PIoUFo%2FXC7Mqc3OisowSk5UBgMsik%2Fimg.png)
개요https://zeniff.tistory.com/10 [Unreal Engine C++] Dash 구현캐릭터의 Dash를 구현할 때, Launch Character를 사용하여 구현하면 간단하지만 공중으로 Dash할 때와 지면에서 Dash할 때의 이동 거리가 다르다는 문제점이 발생하였다. 이는 지면에 있을 때엔 지면 마zeniff.tistory.com이 글에서 구현했던 Dash 방식은 캐릭터의 순간 속도를 빠르게 만든 뒤, AddMovementInput으로 한칸 이동하는 방식을 사용하였다. 이 방식은 필자의 기준에 당시엔 괜찮았지만 지금 보면 생각했던 대쉬라는 기능에 대해 좀 아쉬운 방식이다.많은 사람들이 Dash에 대해 생각할 때엔 속도가 빨라져서 뛰는 느낌일수도 있지만 순간이동 또는 피하는 회피 기..
![[Unreal Engine C++] Widget Blueprint를 이용해 세션 생성 및 접속 기능 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqa4tg%2FbtsI4RFXaYM%2FxqLv7pBZ4phXwpwifHMLa0%2Fimg.png)
[Unreal Engine C++] Online Subsystem을 활용한 멀티플레이 구현에서 진행했던 내용에서 더 나아가 유저 위젯 블루프린트를 이용해 접속해보자.언리얼에서의 준비유저 인터페이스 -> 위젯 블루프린트로 사용할 위젯을 생성해준다. 필자는 게시판을 눌러서 세션을 생성하는 느낌으로 만들고 있기 때문에 WBP_NoticeBoard라고 이름을 지었다.WidgetSwitcher라는 기능을 이용하여 다음과 같이 UI를 구성하였다.WidgetSwitcher는 ActiveWidget을 설정함으로 하나의 위젯 블루프린트 안에서 여러가지 UI들을 셋팅할 수 있는 기능이다.활성화된 탭만 표시하고 다른것은 표시하지 않기 때문에 유용하게 사용할 수 있다.각 스위처에 포함되어 있는 탭에는 Scroll Box를 이..
![[프로그래머스 C++] 숫자 짝꿍](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmTRVU%2FbtsHU6iDZUi%2FQYxUdZ4b0QFlQKk65c8MX1%2Fimg.png)
https://school.programmers.co.kr/learn/courses/30/lessons/131128X와 Y를 비교하여 같이 존재하는 숫자를 골라낸 후, 그 수를 조합하여 가장 큰 수를 만드는 문제이다.숫자의 개수까지 비교해야 하기 때문에 단순 확인보다는 조금 생각을 해야 하는 문제이다.각 X와 Y의 개수를 확인하는 배열을 생성하여 각각 돌아서 각 숫자의 개수를 확인하였고, 두 배열에서 최소값에 따라서 큰값부터 answer에 붙여 구현하였다.#include #include using namespace std;string solution(string X, string Y) { string answer = ""; int Xnum[10]; int Ynum[10]; ..