일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Two Points
- 다익스트라
- SQL
- DP
- 그래프
- Brute Force
- Stored Procedure
- 스토어드 프로시저
- binary search
- 이진탐색
- union find
- Dijkstra
- Hash
- Trie
- MYSQL
- String
- two pointer
- Today
- Total
목록분류 전체보기 (425)
codingfarm
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134#include using namespace std; class ListNode {public: int value; ListNode* pPrev, * pNext; ListNode() { ..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include using namespace std; class VectorNode {public: int value, key;}; class Vector {public: int cnt, reserved; VectorNode *nodes; void Resize() { reserved *= 2; VectorNode *tmp = new VectorNode[reserved]; for (int i = 0; i = reserved) Resize(); nodes[cnt].key = key; no..

세그먼트 트리는 배열의 구간합을 더 효율적으로 구하기 위한 알고리즘이다. 가령 임의의 배열이 주어질때 위 배열에서 길이 n만큼의 구간을 다 구하는데 걸리는 시간 복잡도는 $O(n)$ 이다. 하지만 매번 구간의 합을 구할때마다 해당길이 만큼 계속해서 반복하는것은 시간낭비이다. 더 효율적인 방법은 없을까? 임의의 배열 S가 주어질때 S[i]는 arr[0] ~ arr[i] 에 있는 모든 원소들의 합과 같다. 만약 $a \sim b$까지의 구간에 있는 원소들의 합을 구해야 한다면? S[b]-S[a-1] 을 통해 구간의 합을 $O(1)$의 상수 시간만에 구할 수 있다. 하지만 이 방법은 배열 요소의 값이 변한다면 값을 수정하기가 굉장히 번거로워진다. 가령 a[i]의 값이 변한다면 S[i] 이후의 값들을 모두 수정..

$X$와 $Y$가 공간 $S$에서 $joint\;pmf\;f(x,y)$를 가진다. marginal pmf는 공간 $S_X$와 $S_Y$에서 각각 $f_X(x),\;f_Y(y)$이다. 사건(event)$A = \{X=x\},\;B=\{Y=y\},\;(x,y) \in S$일때 $A \cap B = \{X=x, Y=y\}$ 이다. 왜냐하면 $$P(A \cap B) = P(X=x,\;Y=y)=f(x,y)$$ 그리고 $$P(B)=P(Y=y) = f_Y(y)>0\;\;\;(since\;Y \in S_Y)$$ 일 경우 사건 $B$가 주어질때 사건 $A$의 조건부확률(Conditional Probability)는 $$P(A|B)=\dfrac{P(A \cap B)}{P(B)}=\dfrac{f(x,y)}{f_Y(y)}$$..

$\bullet$ (피어슨)상관 계수는 두 변수가 서로 (선형)상관관계를 가지는지 확인하는 척도이다. $\bullet$ 1이나 -1에 가까우면 상관관계가 있다 보고 0이면 없다고 본다. $\bullet$ $[-1,1]$을 벗어나지 않는다. 다음과 같이 정의된 $\rho = \rho (X,Y)$ 를 피어스 상관계수(pearson correlation coefficient)라고 한다. $$\rho = \dfrac{Cov(X,Y)}{\sigma_X \sigma_Y}=\dfrac{\sigma_{XY}}{\sigma_X\sigma_Y},\;\;\;\;\; -1 \leq \rho \leq 1$$ $Cov(X,Y)$를 $X$와 $Y$의 공분산(covariance)라 한다. $Cov(X,Y) = E[(X-\mu_X)(..

언리얼 기본 예제 프로젝트인 flight에 대해 알아보자 a,d 로 좌/우회전 w,s 로 하강/상승 L.shift, L.ctrl로 가속/감속을 하여 비행기를 조종한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 // Copyright 1998-2019 Epic Games, Inc. All Rights R..

앞서 삼성sds에서 진행하는 시험에 합격하여 pro자격을 취득했기에 pro채용에 지원할 수 있는 자격이 주어젔습니다. https://codingfarm.tistory.com/101?category=847047 자기소개서 스펙 -학교, 학과 : 울산대학교 전기전자공학과 -학점 : 3.5/4.5 -자격증 없음 -어학 : OPic IM2 -경력 : 없음 -수상경험, 대외활동 --I.E 경진대회 전력전자학회장상 수상 및 졸업작품 전시회 우수상 수상, 일본 후쿠오카 대학 학술교류회 참여 작품 링크 : https://www.youtube.com/watch?v=sTrP7CwfeIk --IoT 이노베이션 챌린지 특별상 수상, 한국전자전 전시 작품 링크 : https://www.youtube.com/watch?v=8ek..
이젠 내리막길을 따라 내려가도록 해보자 사실 지금까지의 프로젝트에서도 각도가 낮은 내리막길에 대해서는 길을따라 내려가는듯이 보인다. 하지만 경사가 심해지면 캐릭터가 허공에 뜨는듯한 모습을 볼 수 있다. 이를 해결하기 위한 추가적인 조치를 하겠다 우선 Controller2D의 Move함수 내부를 확인하자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public void Move(Vector3 velocity) { UpdateRaycastOrigins (); collisions.Reset (); collisions.velocityOld = velocity; if (velocity.y

한번도 해본적은 없지만 도트이미지가 맘에들어서 구경했던 게임입니다. 오랜만에 소식을 찾아보니 서버종료했더군요 그래도 이미지 파일들 퀼리티가 좋아서 2d게임 만들때 더미데이터로 쓰기위해 다 다운받으려 했습니다. https://bagoum.com/cardsort Card Sorting bagoum.com 몇몇 사이트가 있었지만 위 사이트가 모든 카드 정보들이 일렬로 나열되 있어서 접근성이 좋았습니다. 게임상에 있는 모든 카드가 다 있는건지는 모르겠지만 파이썬을 이용해 사이트에 있는 모든 카드를 다운받도록 했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 4..

지금까지 만든 이동코드는 평지를 이동하는데엔 아무 이상도 없다. 하지만 오르막길을 오를때는 이동이 불가능할 정도로 속도가 급격히 떨어지는것을 확인 할 수 있다. 문제 해결을 위해선 원인을 알아야한다. 먼저 캐릭터가 이동하는 순간의 모습을 캡처해보자 이동방향으로 horizontalRayCount개의 ray가 생성되어 해당 프레임동안 캐릭터의 이동 거리(velocity.x + deltaTime)에 skinWidth를 더한 길이만큼의 범위내에서 장애물을 감지하는 방식이다. ray자체가 skinWidth만큼 캐릭터의 테두리로부터 안쪽에서 발사되는 방식이기에 아주작은 턱은 넘지 못하는 모습을 볼 수 있다. 이와 마찬가지로 경사가 매우 낮다면 ray가 장애물을 감지 할 수 없으므로 큰 어려움 없이 지나갈 수 있을것..
보호되어 있는 글입니다.

우클릭을 통해 발차기 기능을 추가해보자 발차기는 주먹과 다른 애니메이션 몽타주로 재생되며 주먹과는 달리 공격중 이동이 불가능하다. 우선 애니메이션 몽타주를 만들고 섹션을 형성해준다. 메쉬 스켈레톤에는 주먹 뿐만아니라 발끝에도 소켓을 추가한다. 이제 입력 메커니즘을 수정하자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 void APunchKick06Character::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) { // Set up game play key bindings check(PlayerInputComponent); P..

캐릭터가 주먹을 휘두르고 타격하는 소리가 나도록 해보자 1 2 3 4 5 6 7 8 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Audio, meta = (AllowPrivateAccess = "true")) class USoundCue* PunchSoundCue; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Audio, meta = (AllowPrivateAccess = "true")) class USoundCue* PunchThrowSoundCue; UAudioComponent* PunchThrowAudioComponent; UAudioComponent* PunchAudioCompon..

각 액터가 서로 충돌이 발생했을때에 이벤트가 발생하는 방법에 대해 알아보겠다. 앞서 우리는 클릭과 함께 주먹을 휘두르고 박스가 이에 반응하도록 프로젝트를 구성했으며 여기서부터 이어나가겠다. 먼저 주먹이 충돌했을때 호출될 아래와같은 이벤트 함수의 원형을 헤더파일에 넣는다. 1 2 UFUNCTION() void OnAttackHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit); cs 이벤트가 될 함수는 반드시 UFUNCTION() 데코를 설정해주어야한다. 함수 정의는 아래와 같으며 지금은 충돌 감지가 잘 되는지 확인하..

주먹으로 적을 타격하는 게임을 만든다 할때 제일 이상적인 방법은 캐릭터의 주먹에 충격을 감지할 collider를 만들고 애니메이션 재생시에 collider에 들어온 적에게 피격 이벤트를 발생시키는것이다. 이때 모델의 주먹에 collider 를 추가하기 위해서 스켈레톤 소켓을 사용할 수 있다. Hand_L과 Hand_R 하위에 소켓을 추가해주고, 적당한 위치를 정한다. 그리고 소켓의 위치에 Box Collider Component를 추가해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 class APunchKick02Character : public ACharacte..

https://docs.unrealengine.com/ko/Engine/Animation/AnimMontage/Overview/index.html 애니메이션 몽타주 개요 애니메이션 몽타주 애셋 작업 방식과 어디에 사용할 수 있는지에 대한 설명입니다. docs.unrealengine.com 여러 애니메이션 시퀀스를 하나의 애니메이션 에셋에 합칠수 있으며 이를 여러 섹션으로 나누어 원하는 구간에 대해서만 그리고 조합하여 재생이 가능하게끔 한다. 가령 하반신은 걷거나 뛰고 있는데 상반신은 총기 조준을 하거나, 재장전, 방패막기 등 상반신과 하반신에 별개의 애니메이션을 주는것이 가능해진다. 상반신과 하반신 애니메이션 따로 재생하기 하반신은 이동에 맞추어 걷지만 상반신은 공격하는 애니메이션을 짜보자 1 2 3 4..

애니메이션 에셋이 주어젔을때 skeleton이 다르면 자신의 모델에 적용이 불가능하다. 하지만 애님 에셋 리타게팅으로 해결 가능하다. 호환 스켈레톤만 표시를 해제해주고 오른쪽에서 원하는 스켈레톤을 선택한다.

actor의 GetVelocity() 함수를 이용하면 이동중인 방향을 알 수 있으나 world 좌표계 기준이다. 그러므로 이 좌표를 local 좌표를 기준으로 얻을 수 있어야 한다. 원리는 간단하다. 우선 GetActorRotation().Vector()로 액터가 바라보는 방향을 구한다. FMath::Atan2(vector.Y, vector.X) 함수를 이용해서 방향벡터를 각도로 변환한다. 그리고 아래식을 참고하여 벡터 회전 변환을 실시한다 $$x'=x\cos\theta-y\sin\theta\\ y'=x\sin\theta+y\cos\theta$$ 언리얼에서는 정면이 X축, 오른쪽이 Y축임을 주의하고 코드를 작성하면 된다. 아래 코드는 캐릭터가 이동중인 방향벡터를 월드좌표계에서 로컬좌표계로 변환하는 코드이..
https://docs.unrealengine.com/en-US/API/Runtime/Engine/Engine/UEngine/AddOnScreenDebugMessage/1/index.html https://developstudy.tistory.com/40?category=783182 1 GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("%f, %f"), 15.0, 5.0)); cs

https://docs.unrealengine.com/ko/Gameplay/HowTo/UsingCameras/SpringArmComponents/index.html 스프링 암 컴포넌트 사용법 Spring Arm 컴포넌트는 카메라 시야가 막히는 상황을 자동으로 처리하는 데 사용됩니다. docs.unrealengine.com 주로 카메라 컴포넌트의 부모로 설정하여 게임상에서 카메라의 위치를 편리하게 설정할 수 있게끔 한다. 주로 3인칭 게임을 만들때에 장애물에 따라 카메라의 위치를 늘였다 줄였다 하는데에 편리하게 쓰인다. Target Arm Length spring의 상위에 붙은 타겟과 하위에 붙은 카메라 사이의 거리를 설정한다 Socket Offset 스프링 암 끝의 카메라의 위치를 조정한다. 이 상대 오..