TIL

TIL day 94

gbleem 2025. 5. 2. 18:27

최근 최종 팀 프로젝트 준비 및 회의로 인해서 개인 공부를 많이 진행하지 못했습니다..

 

1. 코딩 테스트


오랜만에 코딩테스트 문제를 풀었습니다.

이번 문제는 저번에 정리한 MST를 활용한 문제였습니다.

https://gbleem.tistory.com/170

 

MST

참고자료https://blog.encrypted.gg/1024 [실전 알고리즘] 0x1B강 - 최소 신장 트리안녕하세요, 오늘 다룰 주제는 최소 신장 트리(Minimum Spanning Tree)라는 개념입니다. 보통 코딩 좀 치는 사람들 사이에서는 MS

gbleem.tistory.com

 

문제는 백준 class 5 "도시 분할 계획" 입니다.

https://www.acmicpc.net/problem/1647

 

코드

  • MST 기본 코드에 한가지 조건만 추가해 주어서 풀었습니다.
  • 선택된 경로들 중 가장 높은 cost의 경로를 저장하여, 전체 cost에서 빼주면 됩니다.
#include <iostream>
#include <tuple>
#include <vector>
#include <algorithm>
using namespace std;

int n, m;
tuple<int, int, int>edge[1000002];
vector<int> parent(100'002, -1);

int find(int x)
{
	if (parent[x] < 0)
		return x;
	return parent[x] = find(parent[x]);
}

bool diff(int u, int v)
{
	u = find(u);
	v = find(v);

	if (u == v)
		return 0;
	if (parent[u] == parent[v])
		parent[u]--;
	if (parent[u] < parent[v])
		parent[v] = u;
	else
		parent[u] = v;
	return 1;
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> n >> m;

	for (int i = 0; i < m; ++i)
	{
		int a, b, cost;
		cin >> a >> b >> cost;
		edge[i] = { cost, a, b };
	}
	sort(edge, edge + m);

	int cnt = 0;
	int ans = 0;

	int maxCost = -1;

	for (int i = 0; i < m; ++i)
	{
		int a, b, cost;
		tie(cost, a, b) = edge[i];

		if (!diff(a, b))
			continue;

		ans += cost;
		maxCost = max(cost, maxCost);
		cnt++;
		if (cnt == n - 1)
			break;
	}
	cout << ans - maxCost;
}

 

 

2. 언리얼 엔진


중간에 시간을 조금씩 내서 데디케이트 서버관련 공부를 조금 진행하였습니다.

 

저번 프로젝트때 구현해 보았던 내용이라 간단하게만 정리를 해보았습니다.

https://gbleem.tistory.com/174

 

Unreal Engine - 데디케이티드 서버 8 (게임 흐름)

1. PlayerController타이틀 전용 컨트롤러 및 맵 추가 동작 모습게임 시작 전 start 화면 구현Start 버튼을 누르면 Join Server 수행 구조Title Level (새로운 레벨 추가)GameModeBase_Title (새로운 GameMode 추가)DXTitleP

gbleem.tistory.com

 

구현된 내용

  • 접속 하는 화면
  • 접속 후 Game의 상태를 변경해주는 시스템
  • 상태를 띄워주는 UI

 

 

3. 팀 프로젝트


팀 프로젝트로는 보스 몬스터 구현을 담당하게 되었습니다.