C# Property 와 public 필드는 동일한 개념이 아니다

프로퍼티는 메서드이다 필드랑 다른 개념이며  신뢰성과 안정성, 유지보수, 확장성을 늘려준다.  신뢰성으로 데이터를 가져오는 것만 가능하거나, 불러오는 것만 가능하게 하거나, 둘다 가능하게 설정할 수 있다.  즉, 필드 값를 사용자 마음대로 조작해 오류가 생기는 일을 방지한다. 안정성으로 데이터를 가져오거나 불러올 때 과정을 안전하게 처리해준다.  예시로 Health라는 변수가 있다고 하자. 가장 간단한 예시로 최소HP를 0으로 최대를 100으로 둘 때 필드로 설정하면 어떠한 사용자 로직이 사용되지 않기에 값이 오버/언더한다. 프로퍼티라는 메소드를 사용하면 값을 넘어도 무조건 값이 0~100 사이에 저장된다. 유지보수에서 어디 에러가 터졌을 때 Health 프로퍼티의 내부 로직만 수정하면 될 것을 필요한 스크립트 하나하나 Health 스크립트를 검색하게 만드는 걸 막는다. 즉, 불필요한 스크립트 탐색,참조를 줄인다. 확장성으로  Health에서 UI로 표시되게 하자! 라고 내부로직을 추가 할 수 있다.  OnHealthChange 라는 이벤트로 UI 스크립트에 등록시켜 간단히 처리가 가능하다. 필드라면 체력이 증가,감소하는 메소드에 UI스크립트를 등록시켜야 하는 등 일이 증가한다 또 interface 멤버로 가질 수 있다. 즉 추상화가 가능하다.

HPA* pathfinding time data

이미지
clusterLength = 10 , max hierarchy level = 1 100x100  0.0017 second = 1.7 millisecond 0.004  0.0018  0.0016  0.002  300x300 0.02 s = 20 ms 0.019 0.015 0.003 0.007 0.031 500x500 = Average gap is big because of lacking hierarchy level 0.2 s = 200 ms 0.029s 0.006s 0.051s 0.035s 0.09s

Heap과 Priority Queue의 차이점

If you have only inset/remove methods, then there is no difference. If you need to traverse your queue/data, values of which are the data itself, then the priority queue will allow you access a sorted list of these values and a heap won’t. Quoting Algorithms Unlocked by Thomas Cormen p.97 : “The descriptions of the priority queue operations say just  what  the operations do, and not  how  they do it.” So your interpretation is correct. 삽입/삭제만 한다면 차이점은 없지만, 모든 데이터를 횡단할때 Queue는 정렬된 상태로 나오지만 Heap은 비정렬된 상태로 나온다, 우선순위 큐는 추상적인 개념이지, 어떻게 구성하는지가 아니다  ( 즉, 자료구조와 개념의 차이. 예로 배열로 만들던 연결리스트로 만들던 우선순위 큐의 기능들이 부합된다면 그것은 우선순위 큐이다!) 참조: https://www.quora.com/What-is-the-difference-between-a-Priority-Queue-and-a-Min-Max-Heap

Binary Tree, Binary Search Tree, Binary Heap 메모

이미지
1. BinaryTree = 말 그대로 이진트리.  이 자료구조는 노드당 0~2개의 자식을 지닌다.채워지는 순서는 뿌리부터 채워져있는지 확인하고, 그다음 왼쪽 자식에서 오른쪽 자식으로 채워지며 모두 채워졌으면 그 자식의 자식으로 순환한다. 1-1 Full Binary Tree or Strict Binary Tree 자식이 2개 혹은 0인 트리다. 1-2 Complete Binary Tree 마지막레벨을 제외한 모든 레벨이 채워져있고 노드가 왼쪽에서 오른쪽으로 순서대로 채워져있는 트리.       0                                          0    0     0                                    0    0 0  0   X  0                               0  0  0     NO                                       OK 1-3 Perfect Binary Tree 모든 노드는 2개의 자식을 지니며 동일한 레벨을 갖는다....