일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- UE4 커스텀로그
- 선택정렬
- 언리얼엔진구조체
- 람다사용정렬
- enumasByue
- moreeffectiveC++
- stl
- 데이터애셋
- 자료구조
- C++최적화
- 델리게이트
- 강참조
- UE_LOG
- 애셋로드
- 알고리즘
- UML관련
- 람다
- dataasset
- map
- C++
- 언리얼가비지컬렉터
- 크리티컬섹션
- 정렬알고리즘
- 약참조
- 스마트포인터
- unorder_map
- BFS
- 정렬
- UELOG
- Today
- Total
목록Note (423)
기억을 위한 기록들
www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net #include #include using namespace std; int main() { int n; cin >> n; if (n
www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net #include #include using namespace std; int main() { int N; cin >> N; int arr[100000]; for (int i = 0; i > arr[i]; } sort(arr, arr + N, greater()); //내림차순 정렬 long long result = 0; for (int i = 0; i < N; i++) { ..
www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M> screenSize; cin >> basketSize; cin >> appleNum; int arr[20]; memset(arr, -1, sizeof(arr)); int n; //사과 떨어지는 위치 순서 저장 for (int i = 0; i > n; arr[i] = n; } //처음 바구니의 자치하는 정도 int left = 1; int right = basketSize; int moveCost = 0; for (int i = 0; i..
언리얼 스마트 포인터 라이브러리(Unreal Smart Pointer Library) 는 메모리 할당과 추적의 부담을 해소해주도록 설계된 C++11 스마트 포인터들의 커스텀 구현입니다. 이 구현에는 업계 표준인 쉐어드 포인터(Shared Pointers), 위크 포인터(Weak Pointers) 그리고 유니크 포인터(Unique Pointers) 가 포함되어 있습니다. 또한, null이 불가능한(non-nullable) 쉐어드 포인터와 같은 역할을 하는 쉐어드 레퍼런스(Shared References) 도 추가되었습니다. 단, 언리얼 오브젝트는 게임 코드에 더 최적화된 별도의 메모리 추적 시스템을 사용하기 때문에 이러한 클래스들은 ‘UObject' 시스템과 사용할 수 없습니다. -언리얼 엔진 공식 문서 ..
기존 그래프는 정점의 집합과 간선의 집합으로 이루어진 자료구조이다. 여기서 새로운 속성인 간선간의 가중치(Weight)를 부여해주게 된다. 최소 신장트리에서 신장트리(Spanning Tree)에서 Spanning는 여러 가지 뜻을 갖고 있지만, 떨어져 있는 둘 사이를 다리 등으로 연결한다는 뜻으로 사용. 즉, 신장 트리는 그래프의 모든 정점을 연결하는 트리이다. 신장트리는 한편으로 그래프의 하위 개념이기도 합니다. 그래프는 사이클을 형성하는 간선만 제고하면 트리로 됩니다. 최소 신장트리란 결국 최소 가중치 신장트리라고도 불립니다. 각 간선이 갖고 있는 가중치의 합이 최소가 되는 신장 트리가 바로 최소 신장 트리인것이다. 보통 "최소한의 비용으로 모든 도시를 연결하는 도로를 건설할 방법을 찾아라"라는 문제..
다익스트라 알고리즘은 프림 알고리즘 과 동작방식이 비슷하다. 다만 프림알고리즘은 단순히 간선의 길이를 이용해 어떤 간선을 먼저 연결할지 결정하는데 반해, 다익스트라 알고리즘은 '경로의 길이'를 감안해서 간선을 연결한다. 다익스트라의 최단 경로 탐색 알고리즘은 사이클이 없는 방향성 그래프에 한해서만 사용 가능. 동작 방식 1. 각 정점 위에 시작점으로부터 자신에게 이르는 경로의 길이를 저장할 곳을 준비하고 모든 정점 위에 있는 경로의 길이를 무한대로 초기화한다. 2. 시작 정점의 경로 길이를 0으로 초기화 하고(시작에서 시작까지는 0이므로), 최단 경로에 추가한다. 3. 최단 경로에 새로 추가된 정점의 인접 정점들에 대해 경로 길이를 갱신하고 이들을 최단 경로에 추가. 만약 추가하려는 인접 정점이 이미 최..
그래프 내의 모든 간선들의 가중치 정보를 사전에 파악하고 이 정보를 토대로 최소 신장 트리를 구축해나가는 것이 특징입니다. 작동 순서 1. 그래프 내의 몯느 간선을 가중치의 오름차순으로 목록을 만듭니다. 2. 1번에서 만든 간선의 목록을 차례대로 순회하면서 간선을 최소 신장 트리에 추가합니다. 단, 이때 추가 된 간선으로 인해 최소 신장 트리 내에 사이클이 형성되면 안됩니다. 해결해야 할 문제 최소 신장 트리에 생기는 사이클을 어떻게 효율적으로 감지 할 것인가? 대안 각 정점들을 각각의 집합 안에 입력하고, 간선으로 연결되어 있는 정점들에 대해서는 합집합을 수행. 이때 간선으로 연결할 두 정점이 같은 집합에 속해 있다면 이 연결은 사이클을 이루게 됨. 예제 사이클 탐지의 문제를 해결 했으니 예제를 통해 ..
최소 신장 트리를 만들어 내는 과정 1. 그래프와 최소 신장 트리를 준비. 이때의 최소 신장트리는 노드가 하나도 없는 상태 2. 그래프에서 임의의 정점을 시작 정점으로 선택하여 최소 신장 트리의 루트 노드로 삽입한다. 3. 삽입되어 있는 정점들과 모든 인접 정점 사이에 있는 간선의 가중치를 조사. 간선 중 가장 가중치가 작은 것을 골라 이 간선에 연결되어 있는 인접 정점을 최소 신장트리에 삽입. 단, 새로 삽입되는 정점은 최소 신장트리에 삽입되어 있는 기존의 노드들과 사이클을 형성 하면 안됨. 4. 3의 과정을 반복하다가 최소 신장 트리가 그래프의 모든 정점을 연결하게 되면 알고리즘 종료 예제 위와 같은 그래프가 있다. 여기서 임의의 정점 B를 시작으로 루트로 정해보자. 그 주위에 정점 A F C 로 가..
0. 기본 우선순위는 less (내림차순 높은값이 루트값) #include #include #include using namespace std; int main() { //priority_queue //아무것도 입력하지 않으면 기본 정렬은 less priority_queue pq; pq.push(4); //원소 추가 push pq.push(20); pq.push(3); pq.push(9); pq.push(1); pq.pop();//원소 제거 // 가장 높은 수인 20 제거 됨 cout
www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net #include #include #include using namespace std; int main(){ int n; cin >> n; int arr[100001]; int dp[100001]; int input; for (int i = 0; i > input; arr[i] = input; dp[i] = input; } int result = dp[0]; for (int i = 1; i <..
UPROPERTY는 멤버 변수 앞에 기술 되며, UPROPERTY내에 프로퍼티 지정자를 나열함으로, 해당 프로퍼티가 엔진과 에디터의 다양한 부분과 상호작용 할 수 있습니다. 빌드 시 UHD(Unreal Header Tool)이 해당 매크로를 감지하고 리플렉션 유형에 추가함. 이렇게 언리얼 리플렉션 시슽메에 추가된 UPROPERTY는 가비지 콜렉션(GC)에 의해 생명주기가 관리되며, 리플렉션을 통해 이 멤버 변수의 이름, 유형 등을 런타임 중에 확인할 수 있게 됩니다. 반대로, UPROPERTY()매크로가 있지 않는 멤버 변수는 언리얼 리플렉션에 노출되지 않으며, 리플렉션 시스템이 제공하는 GC, 런타임 정보 확인등을 사용할수 없게 된다. 언리얼 리플렉션에 관하여 www.unrealengine.com/ko..
www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net #include #include using namespace std; int target1; int target2; int cnt; vector info[100]; bool checkArr[100]; bool bIsSuc = false; int resultCnt = 9999; void D(int _n) { if (_n == target2) { bIsSuc = true; if (cnt < resul..