본문 바로가기

전체 글

(277)
Memory Management in Unity 유니티 메모리 관리 번역 이 포스트는 유니티 튜토리얼을 번역한 것이다. 매끄럽지 않은 번역이나 오역이 있을 수 있음에 유의하고 충분한 영어 독해가 가능하면 원본을 보면 좋다. 여담이지만 원문에도 어색한 맥락이 있는데 이 포스트에도 그런 느낌이 있다면 그것은 그 맥락을 그대로 옮겨서 그런 것이니 이를 참고하면 좋겠다. 만약 오류가 명백히 보인다면 제보해주면 감사하게 반영하겠다. 참고: 2019년 3월 6일 자 버전을 번역했다. 요약 유니티 엔진에서 적절한 메모리 관리는 도전적인 일이 될 수 있다. 이 가이드에서는 공개적으로 사용 가능한 플랫폼(publicly available platform)에서 메모리 사용을 프로파일, 최적화하는 필수 지식을 습득하는 것을 목표로 한다. 1. A guide to optimizing Memory ..
유니티 Fog of War 전장의 안개 구현하기 이 포스트에서는 아래의 저장소 소스코드를 토대로 통해 전장의 안개를 구현하는 한 가지 방법을 제시한다. https://github.com/LeLocTai/Fog-of-war GitHub - LeLocTai/Fog-of-war Contribute to LeLocTai/Fog-of-war development by creating an account on GitHub. github.com 필요 지식 이 포스트를 읽기 전에 Field Of View를 구현하는 방법을 알고 있어야 한다. 위의 저장소가 Field Of View 구현을 기반으로 안개를 구현하고 있기 때문이다. 아래 시리즈를 보지 않았으면 먼저 공부하도록 한다. https://nicotina04.tistory.com/197 https://nicoti..
Dynamic Segment Tree and Lazy Propagation 이 포스트에서는 다이나믹 세그먼트 트리에 대한 소개와 레이지 프로퍼게이션까지 구현을 해보도록 한다. 엄청 큰 범위에서의 구간 쿼리? 다음 문제를 해결한다고 해보자. 수열 a가 있을 때 1. ai에 x를 더한다. 2. i > 1; auto lval = tree[tree[node].l].val; if (lval >= kth) return kth_query(tree[node].l, from, mid, kth); return kth_query(tree[node].r, mid + 1, to, int(kth - lval)); } Colored by Color Scripter cs 이 함수를 가지고 4번 쿼리를 처리하면 된다. 일기 예보를 해결하는 전체 코드는 다음처럼 짤 수 있다. 노드 개수를 주의하자. 1 2 3..
백준 12986 - 화려한 마을 2 https://www.acmicpc.net/problem/12986 $O((N+Q)\sqrt N \log N)$ 솔루션 - Mo's + Indexed heap Mo's 알고리즘 적용을 위해 쿼리를 정렬한다. 그리고 -100000부터 100000까지의 값을 index로 취급하면 가장 많이 출연한 원소의 횟수를 indexed heap로 찾을 수 있다. 그러면 각 쿼리를 처리하면서 원소의 출연 횟수를 구역을 횡단할 때마다 $O(\log N)$의 시간 복잡도로 갱신하게 되고 쿼리의 답은 max indexed heap의 top이 된다. 시간 복잡도 : $O((N+Q)\sqrt N \log N)$ 전체 코드 더보기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22..
백준 17353 - 하늘에서 떨어지는 1, 2, ..., R-L+1개의 별 https://www.acmicpc.net/problem/17353 사전 지식 imos법을 알면 풀이를 쉽게 이해할 수 있다. 이 포스트에서는 imos법을 알고 있다는 가정 하에 설명하도록 한다. 공차가 1인 등차 수열 이 문제는 공차가 1인 등차수열을 구간에 더하면서 포인트 쿼리를 수행한다. 여기서 포인트 쿼리를 구간 쿼리로 바꿔보자. 점 x에 떨어진 별의 개수가 아닌 구간 [1, x]의 합을 구하는 쿼리로 바꾼다. 왜 이렇게 쿼리를 바꾸냐면 쿼리 1을 스위핑 덧셈 문제로 바꾸기 위함이다. 얘를 들어 다음 배열을 살펴보자. 1 2 3 4 5 이 배열의 원소들 $a_{1}, a_{2},... $을 $imos(i) - imos(0)$의 형태로 구하려면 어떻게 할까? 1 1 1 1 1 -5 이렇게 배열을 구..