ImageAiCon PP진행중인 작업프리뷰 로드아웃 제작중알고리즘 학습중...https://inradestrt.tistory.com/655 진행 예정 작업(예상)Unreal의 ImageAI공부하기CNN알고리즘 다시 복기하기알고리즘 선별( 현 예상안 으로는,DQN알고리즘 사용예정)알고리즘 관련 강의 학습( 자본이 준비되면 강의학습을 진행하며 정리사항 정리예정)Unreal ImageRetargeting 코드제작언리얼 함수 상으로 지정된 카메라의 타겟뷰를 이미지값으로 저장 반환하는 방식이 존재함.TCP방식으로 데이터 통신처리를 진행TensorFlow를 사용하여 전달받은 이미지로 학습 알고리즘 연산.연산결과를 다시 언리얼로 전달하여 학습된 데이터를 갱신.4번과 3번을 반복학습결과확인 후 재학습 5와 6을 원하는..
ImageAiCon PP진행중인 작업프리뷰 로드아웃 제작중 진행 예정 작업(예상)Unreal의 ImageAI공부하기Unreal ImageRetargeting 코드제작AI노드 재정렬노드기준 가중치수식 제작ViewTarget 에 대한 AI의 가중치학습학습결과확인 후 재학습 5와 6을 원하는 AI행동패턴이 나타날때까지 반복 완료된 작업
목표점상점 구매 잠금효과 재정리카드 UI를 좀 더 보기 편하게 정리하기상점 구매 잠금효과 재정리 전에 만들어놓았던, 스테이지 세이브 데이터의 항목에 Shop의 데이터를 끼워넣고 로드만 해주면 되는 상황이라 큰 문제는 발생하지 않았다. 개선점 Load시, 비어있는 노드에는 새 카드 노드에서 객체를 호출해야 하는데. 비어있는 노드로 호출된다. 비어있을 경우, 로드할 때 새 카드를 로드하게 바꾸어야한다.카드 UI를 좀 더 보기 편하게 정리하기 UI를 재작업하였다. 초기에 작업했던 카드 UI라 오차가 많고 난잡하게 작성되어있어서 거의 새로 만드는 수준으로 제작하였다. 개선점카드의 FaceImage를 설정하여 종족이나 임의의 카드 표시 이미지를 띄워야한다.진행중인 작업0. 디테일화 ( 베이스를 기반으로 스킬, ..
문제 설명두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항arr은 길이 1이상, 15이하인 배열입니다.arr의 원소는 100 이하인 자연수입니다.입출력 예arrresult[2,6,8,14]168[1,2,3]6문제 해설 최소공배수의 성질을 응용하자. 최소값의 최소공배수를 구해봐도 최댓값이 성립하지 않으면 최소공배수가 성립할 수 없다는 점을 기..
N진수 게임튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다.10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다.이렇게 게임을 진행할 경우,0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, …순으로 숫자를 말하면 된다. 한편 코딩 동아리 일원들은 컴퓨터를 다루는 사람답게 이진수로 이 게임을 진행하기도 하는데, 이 경우에는0, 1, 1,..
무기 객체에 애니메이션을 적용하고, 상태에 따라 애니메이션을 실행하게 할 수 있다.HUD를 띄우고, 조준점을 표시할 수 있다.HUD의 조준점과 총기의 방향Rotation을 연동할 수 있다.무기 애니메이션 적용. 무기객체 또한 엑터를 상속받아 동작하는만큼, 임의의 ABP를 배정하여 상태에 따라 애니메이션을 실행하게 조정할 수 있다.WeaponActor#pragma once#include "CoreMinimal.h"#include "Datas/WeaponDatas.h"#include "GameFramework/Actor.h"#include "Interface/IInteract.h"#include "BaseWeapon.generated.h"enum class EFireMode : uint8;/* * */cl..
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.
제한 사항
arr은 길이 1이상, 15이하인 배열입니다.
arr의 원소는 100 이하인 자연수입니다.
입출력 예
arr
result
[2,6,8,14]
168
[1,2,3]
6
문제 해설
최소공배수의 성질을 응용하자.
최소값의 최소공배수를 구해봐도 최댓값이 성립하지 않으면 최소공배수가 성립할 수 없다는 점을 기억하자.
예시에서 2와 6이 최소공배수를 만족해도,8이 만족할 수 없고, 2 6 8 이 만족해도 14가 만족할 수 없는것 처럼.
첫 번째 시도
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> arr) {
int answer = 0;
int maxA = *max_element(arr.begin(), arr.end());
int i = 1;
while (true)
{
answer = maxA * i;
bool find = true;
for (auto& def : arr)
{
if (find)
{
if (answer % def != 0) find = false;
}
else
break;
}
if (find) return answer;
i++;
}
}
성공
최소공배수의 성질을 생각해서, 최댓값부터 N배수만큼 계속해서 만들고, 가지고있는 배열에 대해 해당 값을 계속해서 for문으로 0이 나타나는지 검사하면 된다.
만약, 한번이라도 false가 나타났다면 실패했다는 의미 임으로 다음 최소공배수를 시도한다.
이진수로 진행하는 게임에 익숙해져 질려가던 사람들은 좀 더 난이도를 높이기 위해 이진법에서 십육진법까지 모든 진법으로 게임을 진행해보기로 했다. 숫자 게임이 익숙하지 않은 튜브는 게임에 져서 벌칙을 받는 굴욕을 피하기 위해, 자신이 말해야 하는 숫자를 스마트폰에 미리 출력해주는 프로그램을 만들려고 한다. 튜브의 프로그램을 구현하라.
입력 형식
진법 n, 미리 구할 숫자의 갯수 t, 게임에 참가하는 인원 m, 튜브의 순서 p 가 주어진다.
2 ≦ n ≦ 16
0 < t ≦ 1000
2 ≦ m ≦ 100
1 ≦ p ≦ m
출력 형식
튜브가 말해야 하는 숫자 t개를 공백 없이 차례대로 나타낸 문자열. 단, 10~15는 각각 대문자 A~F로 출력한다.
입출력 예제
n
t
m
p
result
2
4
2
1
"0111"
16
16
2
1
"02468ACE11111111"
16
16
2
2
"13579BDF01234567"
문제 해설
임의의 진법으로 객체를 재구성하여 내가 말해야 할 단어를 출력해야 한다.
여기서 함정이 있는데, 단어는 항상 한개씩만 넣어야 한다는 점이다.
위에서 설명했듯, 10을 말할 때, 1번은 1 2번은 0 을 말하고, 숫자는 11로 넘어간다.
이런식으로 연산이 되어야 한다.
여기에서 우리가 사용해야할 객체를 정리해보자.
우선, String을 출력해야 함으로 string.
그리고, 연산과정 상 나온 string 문장을 reverse해야함으로 algorithm
숫자가 한자릿수 이상 나타날 경우 순서대로 말해야 함으로 queue에 숫자들을 전부 밀어넣고 연산해야 할것이다.
이제 코드를 작성해보자
첫 번째 시도
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
void convertToBase(int number, int base, queue<char>& input)
{
if (number == 0) {
input.push('0');
return;
}
string result;
const char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
while (number > 0)
{
int remainder = number % base;
result += digits[remainder];
number /= base;
}
reverse(result.begin(), result.end());
for (auto& def : result)
input.push(def);
}
string solution(int n, int t, int m, int p) {
string answer = "";
int now = 0;
queue<char> numberq;
while (answer.size() < t)
{
for (int i = 1; i <= m; i++) {
if (numberq.empty())
{
convertToBase(now, n, numberq);
now++;
}
if (i == p) answer += numberq.front();
numberq.pop();
}
}
return answer;
}
성공
우선, 입력받은 숫자를 임의의 진법으로 재정리할 함수를 구현한다.
함수에서는 현재 문자를 while문으로 나머지값을 구하면서. 나머지값에 대한 지정된 숫자값을 넣어 연산하게 된다.
그리고, 나머짓값은 항상 끝값부터 나타남으로 결과값에서 reverse하여 숫자를 거꾸로 해주어야 한다.
그 후, 나타난 숫자는string에 저장됨으로 ,queue에 for문으로 한개씩 집어넣으면 된다.
아랫 solution에서는 while문으로 현재 지정된 string결과값이 출력사이즈보다 작은지 큰지 확인하고.
작다면 무한반복시킨다.
q가 비어있다면 새 숫자를 받아야 함으로. 새 숫자를 받고.
현재 p번째 출력이라면, 출력문장에 넣어야 함으로 answer에 맨 앞 숫자를 집어넣어준다.