일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 람다사용정렬
- map
- 델리게이트
- unorder_map
- moreeffectiveC++
- 강참조
- BFS
- UE4 커스텀로그
- UELOG
- 람다
- 선택정렬
- 크리티컬섹션
- 알고리즘
- enumasByue
- 자료구조
- UML관련
- 언리얼엔진구조체
- stl
- 데이터애셋
- 언리얼가비지컬렉터
- 정렬알고리즘
- C++
- 약참조
- dataasset
- 정렬
- 애셋로드
- 프로그래머스
- C++최적화
- UE_LOG
- 스마트포인터
- Today
- Total
목록Note (423)
기억을 위한 기록들
#include #include using namespace std; int ans=0; void dfs(vector numbers, int target, int sum, int idx){ if(idx >= numbers.size()){ if(sum==target) ans++; return ; } dfs(numbers, target, sum+numbers[idx], idx+1); dfs(numbers, target, sum-numbers[idx], idx+1); } int solution(vector numbers, int target) { dfs(numbers, target, 0,0); return ans; }
이번엔 링크드 리스트다. 장점: - 새로운 노드의 추가/삽입/삭제 쉽고 빠름( 배열은 요소를 삽입하거나 제거하기 어렵) 단점 : - 다음 노드를 가리키려는 포인터 때문에 각 노드마다 4바이트의 메모리가 추가로 필요. - 특정 위치에 있는 노드를 얻는데 드는 비용이 크며, 속도도 느리다. 링크드리스트의 필요한 기본 연산은 5가지 - 노드생성/소멸 - 노드 추가 - 노드 탐색 - 노드 삭제 - 노드 삽입 코드 : #include using namespace std; template class Node { public: Node() {}; Node(T _data) :data(_data) {} ~Node() {}; T data; //현재 노드에 있는 데이터 Node * next; //현재 노드의 다음 노드를 가..
Least Recently Used 알고리즘이란? - 가장 오랫동안 참조되지 않은 페이지를 교체하는 기법 - 컴퓨터의 자원은 한정적이며, 한도내에서 최고의 효율을 얻기 위해 여러 알고리즘이 존재, 그 중에 하나. (FIFO,OPT,LRU,LFU,MFU 등등..) 방법 첫번째 : 페이지에 저장 된 데이터가 언제 사용되었는지를 알 수 있게하는 부분을 구현해서 제일 오랫동안 참조되지 않는 데이터를 제거 하는 방법. 두번째 : 페이지에 데이터를 큐 형식으로 저장하는 방식. 페이지내에 데이터가 존재한다면 데이터를 페이지 내에서 제거하고 맨 위로 다시 올리고, 존재하지 않는다면, 바로 입력하여 맨 아래에 있는 데이터를 삭제하는 과정을 진행. 예제 그림 위 그림에서 7번, 9번같은 상황은 참조하는 값이 이미 페이지에..
이런 표가 머릿속에서 저절로 떠오르면 참 좋을텐데... 아래 사이트에서 직접 해볼 수 있다. www.toptal.com/developers/sorting-algorithms Sorting Algorithms Animations Animation, code, analysis, and discussion of 8 sorting algorithms on 4 initial conditions. www.toptal.com
www.youtube.com/watch?v=AfmoNJ84J6k&ab_channel=Hyo www.youtube.com/watch?v=cIJCocOo3fo&ab_channel=Hyo
www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 위 문제를 풀어보다가 redcoder.tistory.com/48 [C++] 소수 구하기 (에라토스테네스의 체) 보통 소수라 하면, 1과 자기자신을 제외하고는 나누어 떨어지지 않는 수라고 불린다. 이를 구하기 위해서 하나 하나씩 나누어 떨어지는 지 검사를 하고는 했는데 더 빠르게 구할 수 있는 방법이 redcoder.tistory.com 를 참고했다. #include #include #include using namespace std; int ..
공부를 하기 위해 책을 구하다보면 절판 된 책들이 많이 있다. 이렇게 2019년을 끝으로 절판 확인이 된 책이 있는데 중고로 구해보려 했으나 원가가 23000원인데 왜 중고가격이 두배 가까이 되는 건가!!! @##$%^ 그러다가 주변 천사가 알려 준 방법이 있다... 바로바로 www.nanet.go.kr/main.do 국회도서관 초대합니다. 국민여러분! www.nanet.go.kr 바로 국회 도서관이다. 여기서 이제 찾는 책을 검색 해본다. 지은이와 출판일이 같다. 표지를 눌러서 확인해도 같다. 이제 이 책의 복사본을 구매 해 받을 수 있다. 우편복사를 신청해준다. 그리고 해당 창에 알맞게 입력해주고 연락을 기다리면 된다. 한 이틀이 지나고 문자가 왔다. 이렇게 오고 해당 계좌로 금액을 보내주고 기다리면..
혼자 뭘 좀 찾아보다가 발견한 C++로 만들어진 액터 컴포넌트를 블루프린트 상에서 호출하기 위한 방법이다. 여기서 내가 만든 UBulletBaseComponent의 UClass(...)안에 해당과 같은 파라미터가 들어있다면, "Bullet Base Component 추가"와 같이 블루프린트에서 노드상으로 동적 호출 추가가 가능하다. 그러나, 아래 BulletBaseComponent를 상속받은 UPlayerBulletComponent 클래스의 파라미터가 이와 같이 비어있다면, 호출이 불가능하다. 그래서 아까 위와 같은 파라미터를 넣어주면, 가능해진다. 이제 파라미터값을 알아본다면 우선 참고는 공식홈페이지를 통해 하였다. docs.unrealengine.com/ko/Programming/UnrealArchi..
게임 프로젝트를 패키징한뒤 개발자의 입맛에 따라 필요한 정보를 게임실행 이외의 파일에 저장이 필요로 할때가 있다. 그게 바로 DLL 파일 (Dynamic Linked Library)이다. 우리가 사용하는 게임이외에 프로그램에도 DLL파일 자체가 없으면 실행 불가능하거나, 문제가 생긴다. 이를 이제 언리얼프로젝트에서 호출하여 사용해보도록 하자. 우선 언리얼 프로젝트를 열기전에 비주얼 스튜디오를 열어 DLL 프로젝트를 생성해준다. 선택되어있는데 프로젝트로 만들어주게 되면 위와같이 기본형태가 나오는데 헤더파일제외는 지워도 무방하다. 그리고 이제 필요로하는 함수를 사용해준다. 난 임시로 숫자 5를 리턴하는 Get5Number 함수와 입력받은 두 수를 더해주는 AddNumber 라는 함수를 만들어 주었다. 그리고..
ConstructorHelpers 이름에서도 알수 있듯이 생성자도우미(?)이다. 방법 1. 방법 2. 난 지금까지 C++에서 에디터의 애셋을 불러 올때, 방법 1만 사용해왔다. 그러던 중 언리얼 기본 샘플 프로젝트 블록 C++에서 방법2을 보고 알아보았다. 역시 공식문서상에 설명이 간단하게 있었다. docs.unrealengine.com/ko/Programming/UnrealArchitecture/Reference/Classes/index.html 게임플레이 클래스 게임플레이 클래스 생성 및 구현을 위한 레퍼런스입니다. docs.unrealengine.com 생성자 스태틱 및 헬퍼 좀 더 복잡한 데이터 유형, 특히나 클래스 레퍼런스, 이름, 애셋 레퍼런스 값을 설정하는 데는, 생성자의 Constructo..
오름차순or 내림차순으로 정렬되어 배열이 있다고 하고, 정렬 되어 있는 배열에 특정값이 몇번 인덱스에 있는지 찾는 이진검색 알고리즘이 존재한다. 변수명 arr 배열(오름차순)을 넣고 15을 찾는다면 변수명 arr2배열에 주석부분을 서로 바꿔준 뒤 마찬가지로 15을 찾으면 사실 여기까지는 인터넷에 찾아보면 더 자세한 설명도 많이 나온다. 근데 내가 글을 쓴 이유는 순위 시스템에서 새로운 점수를 받았을때 해당 점수가 등수에 반영 가능한 여부를 판단하기 위해서 이다. 그러기 위해 이진검색을 조금 변경 해보았다. 내림차순인 변수명 arr2 배열에서 targetValue 새로운 점수인 70점이 순위에 드는지 여부를 확인하기 위함이다. 결과이다. 출력에 result+1은 실제 배열 인덱스와 우리가 인식하는 등수(1..
1. Stack(LIFO)(기본 컨테이너 : deque) - 컨테이너는 vector, deque, list를 사용 가능 2. Queue(FIFO)(기본 컨테이너 : deque) - 컨테이너는 vector는 사용불가능 / deque, list 사용 가능 3. Priority_queue(우선순위 큐 구현/기본 컨테이너 : vector) - 내부적으로 STL의 힙 알고리즘 make_heap(), push_heap(), pop_heap() 사용하여 구현. - 임의 접근 반복자를 제공하는 컨테이너(vector/deque) 사용가능