분류 전체보기
-
[백준 조합] 다리놓기 1010 C++Computer Science/백준 Boj 2023. 10. 23. 21:05
https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 이 문제는 이항정리 문제이다. 이항정리란 ? n개 중 r개를 순서와 상관없이 뽑는 조합을 말한다. 이항정리 특징을 사용해 문제를 풀면 아래와 같은 코드로 풀 수있다. #include #include using namespace std; vector dp; int func(int r, int c) { if(dp[r][c]) return dp[r][c]; dp[r][c] = func(r - 1, c)..
-
[백준 조합] 1010 C++Computer Science/백준 Boj 2023. 10. 23. 14:41
조합이란 ? N개의 숫자 중에서 순서에 상관없이 M개를 뽑는 것이라 이해했다. 예를들면 공동대표의 자리를 뽑는데, 대표의 자리는 공동 대표이므로 순서에 상관없는 경우이고 이를 조합으로 표현하면 nCm으로 표현가능하다. 백준에서는 메모제이션으로 이 문제를 풀었다. #include #include using namespace std; array memo; int combination(int n, int r) { if(memo[n][r]) return memo[n][r]; else { memo[n][r] = combination(n -1, r - 1) + combination(n - 1, r); return memo[n][r]; } } int main() { for(auto& x : memo) fill(x.b..
-
총알 클래스 제작Game Programming/언리얼 2023. 10. 22. 12:51
보이저 에셋에 블루프린트로 구성 된 총알 클래스가 있었다. 이것을 cpp로 옮겨보려했다. 각 컴포넌트에 대해 조사했는데 아래와 같았다. UArrowComponent 진행 방향을 에디터에서 랜더링 할 때 표시하기 위한 컴포넌트 URadialForceComponent 부셔 질 수 있는 메쉬에 충격(?)을 줄 때 사용하는 컴포넌트 UProjectileMovementComponent 부착 된 컴포넌트를 이동 시키기 위한 컴포넌트 UProjectileMovementComponent의 경우에는 아래와 같이 생성자에서 초기화하고 ProjectileMovementComponent = CreateDefaultSubobject(TEXT("ProjectileMovementComponent")); ProjectileMovem..
-
[백준, 큐 스택] 풍선 터뜨리기 2346 C++Computer Science/백준 Boj 2023. 10. 21. 23:44
지문해석 첫번째 풍선을 터뜨리고 종이에 써져있는 수만큼 이동해서 다음 풍선을 터뜨린다. 이 때 써져있는 종이의 수가 양수이면 오른쪽 이동, 음수이면 왼쪽으로 이동한다. 단 ! 0 일 때 왼쪽으로 이동하면 N으로 이동해서 왼쪽으로 이동한다. N 일 때 오른쪽으로 이동하면 0으로 이동해서 오른쪽으로 이동한다. 풀이 예제 1번을 보자 첫번째 풍선을 터뜨린다. 종이에 써져있는 3만큼 오른쪽으로 이동한다. 구현 방법은 deque 가장 앞에 있는 원소를 가장 뒤로 붙이면 된다. 가장 앞에 있는 4번째 풍선을 제거한다. 종이에 써져있는 -3만큼 왼쪽으로 이동한다. 구현 방법은 deque 가장 뒤에 있는 원소를 가장 앞으로 붙이면 된다. 가장 뒤에 있는 5번째 풍선을 제거한다. 위와 같은 순서를 반복하면 아래와 같이 ..
-
[백준, 큐스텍] 24511 queuestack C++Computer Science/백준 Boj 2023. 10. 21. 22:41
지문 파악 0번 자료구조이면 원소를 큐에 push() 후 pop()한다. 1번 자료구조이면 원소를 스택에 push() 후 pop()한다. 큐인지 스택인지 말하는 배열이 N개만큼 주어진다. 즉 큐 또는 스택을 원소로하는 배열이 N개 만큼 있다고 생각하면 된다. N- 1번째 원소를 N -1번 자료구조(큐 또는 스택)에 push() 후 pop() 한다. 이 때 스택의 특성에 대해 살펴보자, push를() 후 pop()을 하면 넣은 원소를 다시 뺴내게 된다. 예제 입력 2를 보자. 아래와 같이 넣은 원소는 그대로 나오게 되어있다. 즉 스택은 연산에서 제외해도 된다는 것이다! 1번 예제를 살펴보자. 2를 넣었으면 자료구조가 Queue일 때는 먼저있던 원소가 스택으로 전달 되고 스택은 연산을 하지 않는다 생각하면 ..
-
Camera Interp locationGame Programming/언리얼 2023. 10. 21. 21:56
아이템을 주울 때 최종 위치를 구현했다. void AMyCharacter::SelectButtonPressed() { if (TraceHitItem) { auto TraceHitWeapon = Cast(TraceHitItem); TraceHitWeapon->StartItemCurve(this); } } 아이템을 줍는 키를 누르면 StartItemCurve 함수를 호출한다. void AWeapon::StartItemCurve(AMyCharacter* Char) { /* Store a handle to the Charater*/ Character = Char; ItemInterpStartLocation = GetActorLocation(); bInterping = true; SetItemState(EItem..
-
Create Door TriggerGame Programming/언리얼 2023. 10. 20. 14:19
문 트리거를 제작했다. //Common static mesh for childs UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Item Properties", meta = (AllowPrivateAccess = "true")); class UStaticMeshComponent* StaticMesh; 스테틱 메시는 아이템 클래스 자식들이 공통적으로 사용해 부모로 이동시켰다. TSubclassOf classToFind; TArray FoundActors; UGameplayStatics::GetAllActorsOfClass(GetWorld(), ACDoor::StaticClass(), FoundActors); double dist = 0.f; for (..
-
[프로그래머스] Lv3 최적이 행렬 곱셈Computer Science/프로그래머스 2023. 10. 20. 13:49
접근법 최적이 행렬 곱셈 알고리즘을 사용하여 푼다. https://ggjjdiary.tistory.com/132 [알고리즘] 연쇄 행렬 곱셈 알고리즘(Chained Matrix Multiplication) 연쇄 행렬 곱셈 알고리즘(Chained Matrix Multiplication) 연쇄 행렬(ex, 2 by 4 행렬 x 4 by 7 행렬 x 7 by 9 행렬 x ...)의 곱셈을 할 때 곱셈 연산을 최소로 하는 곱셈 순서를 찾는 알고리즘이다. 행렬 곱셈은 결 ggjjdiary.tistory.com 풀이 시간 복잡도 : 200 * 200 .. 200 의 형식으로 결합순서까지 생각하며 풀면 시간초과가 발생한다. 일단 다음과 같이 5개의 행렬이 있다고 생각해보자. 1) 그림에서 제시하고 있는 순서 외에도 ..