260323 TIL - 챕터4 멀티플레이어 게임개발 11일차
2026. 3. 23. 23:33ㆍ언리얼 7기 본캠프
//n진수 게임 문제
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string tobase(int num, int n){
if (num == 0) return "0";
string result = "";
string numbers = "0123456789ABCDEF";
while (num > 0)
{
result += numbers[num % n];
num /= n;
}
reverse(result.begin(), result.end());
return result;
}
string solution(int n, int t, int m, int p) {
string answer = "";
string fullnumbers = "";
int totalnumbercount = t * m;
for(int i = 0; fullnumbers.size() < totalnumbercount; i++)
{
fullnumbers += tobase(i, n);
}
for(int i = p - 1; i < fullnumbers.size(); i += m)
{
answer += fullnumbers[i];
if (answer.size() == t) break;
}
return answer;
}
//후보키 문제
#include <string>
#include <vector>
#include <unordered_set>
using namespace std;
bool checkuniqueness (const vector<vector<string>>& relation, int current, int rowcount, int colcount){
unordered_set<string> unique;
for(int i = 0; i < rowcount; i++)
{
string data = "";
for(int j = 0; j < colcount; j++)
{
if (current & (1 << j)) data += relation[i][j];
}
unique.insert(data);
}
if (unique.size() == rowcount) return true;
else return false;
}
bool checkminimality (int i, const vector<int>& passedkey){
for(int key : passedkey)
{
if ((i & key) == key) return false;
}
return true;
}
int solution(vector<vector<string>> relation) {
int answer = 0;
int rowcount = relation.size();
int colcount = relation[0].size();
vector<int> passedkey;
for(int i = 0; i < (1 << colcount); i++)
{
if (checkuniqueness(relation, i, rowcount, colcount) && checkminimality(i, passedkey))
passedkey.push_back(i);
}
answer = passedkey.size();
return answer;
}'언리얼 7기 본캠프' 카테고리의 다른 글
| 260325 TIL - 챕터4 멀티플레이어 게임개발 13일차 (0) | 2026.03.25 |
|---|---|
| 260324 TIL - 챕터4 멀티플레이어 게임개발 12일차 (0) | 2026.03.24 |
| 260320 TIL - 챕터4 멀티플레이어 게임 개발 10일차 (0) | 2026.03.20 |
| 260319 TIL - 챕터 4 9번과제 제출일 (0) | 2026.03.19 |
| 260318 TIL - 챕터4 멀티플레이어 게임 개발 8일차 (0) | 2026.03.18 |