분류 전체보기
-
프로그래머스 Lv2 숫자의 표현Computer Science/프로그래머스 2023. 10. 5. 10:17
문제의 접근을 먼저 N이 될 수 있는 수를 만들고 그 다음 수가 오면 그 다음 수만큼 배열에서 값을 뺀다. 만약에 다음에 오는 수보다 뺀 값이 크다면 다시 다음 수를 빼고 다음수를 추가한다. 따라서 재귀를 사용해서 문제를 해결하면 될 것 같다. 첫번째로 N만큼의 배열을 만든다. 두번째로 N만큼의 배열에서 다음 수 만큼 뺀다. 세번째로 뺀 수가 다음 수 보다 크다면 앞의 수를 빼고 다음 수를 추가한다. 라고 접근하고 풀이했다. sum이 n보다 작거나 같다면 deque에 원소를 더했다. sum이 n보다 크다면 deque의 원소를 뺐다. sum이 n과 같은 경우는 answer를 증가했다. deque의 마지막 값이 n과 같다면 반복문을 종료 시켰다. #include #include #include using n..
-
프로그래머스 Lv2 최솟값 만들기Computer Science/프로그래머스 2023. 10. 5. 09:29
두 배열의 곱에서 최솟값을 구하려면 한 배열은 오름차순 정리, 한 배열은 내림차순 정리를하면 된다. sort 함수에서 greater 를 사용하면 내림차순으로 정리된다는 것을 외워야겠다. #include #include #include using namespace std; int visit[1001]; int solution(vector A, vector B) { int answer = 0; sort(A.begin(), A.end()); sort(B.begin(), B.end(), greater()); int Sum = 0; for(int i = 0; i < A.size(); ++i) { Sum += A[i] * B[i]; } return Sum; }
-
프로그래머스 Lv2 피보나치 수Computer Science/프로그래머스 2023. 10. 5. 09:07
이 문제는 피보나치 수열을 구하면된다. 재귀적으로 푸는데, 이미 계산한 피보나치수는 다시 계산을 하지 않도록 하는 것이 중요하다. #include #include using namespace std; long long arr[100'001]; long long fibonacci(int n) { if(n == 1) { return 1; } if(n == 2) { return 1; } if(arr[n] == 0) { arr[n] = fibonacci(n - 1) + fibonacci(n - 2); return arr[n]; } return arr[n]; } int solution(int n) { long long answer = 0; answer = fibonacci(n); return answer; }
-
총알 이펙트Game Programming/언리얼 2023. 10. 4. 23:47
총알 이펙트를 주고 싶어서 한번 만들어 보기로 했다. 처음에는 리스트를 사용하여 Component->IsActive() == false이면 노드를 삭제하는 방식으로 했는데 노드 삭제가 잘 되지 않았다.... 분명 현재 노드를 제외하고 이전노드와 다음 노드를 연결했는데 그래서 생각난 것이 오브젝트풀이였다. ShootingParticle.SetNum(1000, false); 위와 같이 TArray를 미리 할당하고, 메모리 자동 조절 기능은 껐다. for (int i = 0; i AddOnScreenDebugMessage(3, 1, FColor::Red, FString..
-
빔 파티클Game Programming/언리얼 2023. 10. 3. 20:53
UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* BeamParticles; MyShooter.h파일에 파티클을 추가했다. if (BeamParticles) { UParticleSystemComponent* Beam = UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), BeamParticles, SocketTransform); if (Beam) { GEngine->AddOnScreenDebugMessage(3, 1, FColor::Blue, FString::Printf(TEXT("Colli..
-
임펙트 파티클Game Programming/언리얼 2023. 10. 3. 16:40
/* Particles spawnd upon bullet impact*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* ImpactParticles; /* Particles spawnd upon bullet impact*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UParticleSystem* ImpactWallParticles; ConstructorHelpers::FObjectF..
-
라인 트레이스 추가Game Programming/언리얼 2023. 10. 3. 13:30
FHitResult FireHit; const FVector Start{ SocketTransform.GetLocation() }; const FQuat Rotation{ SocketTransform.GetRotation() }; const FVector RotationsAxis{ Rotation.GetAxisX() }; const FVector End{ Start + RotationsAxis * 50'000.f }; GetWorld()->LineTraceSingleByChannel(FireHit, Start, End, ECollisionChannel::ECC_Visibility); if (FireHit.bBlockingHit) { DrawDebugLine(GetWorld(), Start, End, FC..
-
Animation MontageGame Programming/언리얼 2023. 10. 3. 13:01
Animation Montage를 추가했다. Animation Montage에서 애니메이션을 추가하며 Section의 이름을 추가하고 Slot은 Animation Montage에서 WeaponFire를 추가했다. 애니메이션 그래프에서 걸어 갈 때 에셋이 총을 쏘는 모양과 맞는 것이 없어 Layerd blend per bone을 사용해서 자연스럽게 처리했다. 애니메이션 그래프에서 걸어 갈 때와 총을 쏘는 것과 블랜드를 시켰다. /*Montage for firing the weapon.*/ UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = Combat, meta = (AllowPrivateAccess = "true")); class UAnimMontage* H..