분류 전체보기
[프로그래머스] 최댓값과 최솟값
[프로그래머스] 최댓값과 최솟값
2023.07.23[프로그래머스] 최댓값과 최솟값 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 string, stoi, atoi 코드 #include #include #include #include using namespace std; string solution(string s) { string answer = ""; string tmp = ""; vector v; for (int i = 0; i < s.size(); i++) { if (s[i] ..
[Unreal] 화살이 포물선을 그리며 떨어지게 하기
[Unreal] 화살이 포물선을 그리며 떨어지게 하기
2023.07.21화살 같이 날라가는 물체는 대개 포물선을 그린다. 원형으로 된 물체가 아닌 이상 날아가는 물체의 시작 부분이 서서히 바닥을 바라보며 추락해야 한다. 이것을 가능하게 하려면 Projectile Movement의 세부항목에 들어가 Rotation Follows Velocity를 체크해주어야 한다. 목차 화살이 포물선을 그리며 떨어지게 하기 ProjectileMovement에서 Rotation Follows Velocity 체크 날아가는 화살의 Actor 내의 ProjectileMovement 세부항목을 확인한다. Projectile Rotation Follows Velocity를 체크한다. Projectile Gravity Scale 0이면 중력 적용x 1이면 일반적인 중력이 적용된다. 해당 항목을 체크하면..
[백준 2447번 C/C++] 별 찍기
[백준 2447번 C/C++] 별 찍기
2023.07.21[백준 2447번 C/C++] 별 찍기 해결전략 재귀 Recursion 코드 #include using namespace std; void Star(int y, int x, int num) { if ((y / num) % 3 == 1 && (x / num) % 3 == 1) cout n; for (int y = 0; y < n; y++) { for (int x = 0; x < n; x++) { Star(y, x, n); } cout
[UE] Feet IK, 마우스 Zoom, Enemy AI
[UE] Feet IK, 마우스 Zoom, Enemy AI
2023.07.21마우스의 휠을 이용하면 화면의 Zoom In과 Out을 구현했다. 'DeltaTime' (전 프레임과 현재 프레임 사이의 시간 차이)와 'InterpSpeed' (보간 속도)를 사용하여 'TargetArmLength'를 부드럽게 변경했다. 마우스 휠의 변경 값을 'InValue'로 넣고 'Speed'를 곱한 값을 'CurrentValue'에 더하고, 이 값을 'Range.X'와 'Range.Y' 사이의 값으로 제한하여 사용하였다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponD..
[프로그래머스] 정수 삼각형
[프로그래머스] 정수 삼각형
2023.07.20[프로그래머스] 정수 삼각형 https://school.programmers.co.kr/learn/courses/30/lessons/43105?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 Dynamic Programming (DP) 동적계획법 코드 #include #include #include using namespace std; int solution(vector triangle) { int answer = 0; int dp[500][500]; dp[0][0] = triangle[0][0]; dp[1][0] = dp[..
[UE] 파쿠르, Feet IK
[UE] 파쿠르, Feet IK
2023.07.20Feet IK(Inverse Kinematics)는 캐릭터의 발이 지면에 정확하게 위치하도록 하는 기술이다. 캐릭터 발의 위치를 조정할 수 있는 가상 본(virtual bone)을 생성한 후 사용한다. Animation Blueprint에 Two Bone IK을 사용하여 발의 위치를 정확하게 조정한다. 이를 위해 Foot IK 노드에는 목표 위치(Target Location)와 목표 회전(Target Rotation)을 입력하여 이 목표 위치와 회전은 발이 지면에 어떻게 위치해야 하는지를 정의한다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h ..
[백준 18405번 C/C++] 경쟁적 전염
[백준 18405번 C/C++] 경쟁적 전염
2023.07.19[백준 18405번 C/C++] 경쟁적 전염 https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net 해결전략 구현, 그래프 이론, 그래프 탐색, 너비 우선 탐색 (BFS) 코드 #include #include #include #include using namespace std; int n, k, s, row, column; vector v; int dirY[4] = { -1, 0, 1, 0 }; int dirX[4] = ..
[UE] 파쿠르: 벽 오르기
[UE] 파쿠르: 벽 오르기
2023.07.19파쿠르는 다음과 같은 과정을 통해 구현하였다. 먼저, 캐릭터 허리 높이 중앙에 있는 Arrow Component로 앞에 장애물 유무를 판단한다. 그 다음, Arrow Component 내 여러 개의 Line Trace로 장애물을 판단한다. Line Trace의 결과값을 바탕으로 어떤 파쿠르가 가능한지 판단한다. 마지막으로 Data Table에 기록된 몽타주를 찾아서 가져워 상황에 맞는 파쿠르 몽타주를 재생한다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeaponCheckBoxes.h .cppSWeaponDetailsView.h .cppSWeaponDoActionData.h..
[UE] 파쿠르 구현하기
[UE] 파쿠르 구현하기
2023.07.18파쿠르 시스템은 캐릭터가 벽이나 장애물과 부딪힐 때의 처리를 통해 구현할 수 있다. Unreal Engine에서는 충돌 처리를 위해 Collision Component와 Physics Engine을 사용할 수 있다. 이를 통해 캐릭터가 벽이나 장애물과 부딪힐 때 알맞은 반응을 하도록 설정할 수 있다. 오늘은 Foot IK를 C++ 코드로 구현할 것이다. 발에 가상 본을 만들고 이 가상 본을 사용하여 Trace로 바닥과 충돌을 검사한다. 양발의 높낮이 차이를 이 Trace 충돌값으로 알아내고 Foot IK 구현에 활용한다. 목차 Plugins Weapon Resource Icon128.pngweapon_thumbnail_icon.png Source Weapon SWeapo..
[UE] Multiplayer 11: Menu Subsystem 수정하기
[UE] Multiplayer 11: Menu Subsystem 수정하기
2023.07.17목차 Menu Subsystem 수정하기 MultiplayerSessionsSubsystem MultiplayerSessionsSubsystem.h더보기#pragma once#include "CoreMinimal.h"#include "Subsystems/GameInstanceSubsystem.h"#include "Interfaces/OnlineSessionInterface.h"#include "MultiplayerSessionsSubsystem.generated.h"//// Delcaring our own custom delegates for the Menu class to bind callbacks to//DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMul..
[UE] Multiplayer 10: Lobby 레벨 기본설정 및 변경하기
[UE] Multiplayer 10: Lobby 레벨 기본설정 및 변경하기
2023.07.17목차 Multiplayer 10: Lobby 레벨 기본설정 및 변경하기 Menu Menu.h더보기#pragma once#include "CoreMinimal.h"#include "Blueprint/UserWidget.h"#include "Interfaces/OnlineSessionInterface.h"//EOnJoinSessionCompleteResult 사용을 위한 헤더#include "Menu.generated.h"UCLASS()class MULTIPLAYERSESSIONS_API UMenu : public UUserWidget{ GENERATED_BODY()public: UFUNCTION(BlueprintCallable) void MenuSetup(int32 NumberOfPublicCon..
[UE] Multiplayer 9: 접속하는 플레이어 확인하기
[UE] Multiplayer 9: 접속하는 플레이어 확인하기
2023.07.17목차 접속하는 플레이어 확인하기 Create a Game Mode LobbyGameMode 생성 새 C++ 클래스 - Game Mode Base - LobbyGameMode 생성 LobbyGameMode.h더보기#pragma once#include "CoreMinimal.h"#include "GameFramework/GameModeBase.h"#include "LobbyGameMode.generated.h"UCLASS()class MULTIPLAYER_API ALobbyGameMode : public AGameModeBase{ GENERATED_BODY()public: virtual void PostLogin(APlayerController* NewPlayer) override; virtual ..