분류 전체보기
-
유니티 화면 비율 고정 처리...16일지 2021. 10. 22. 02:24
특이한 변수가 사용되는 코드 확인 어제 확인한 변수가 사용되는 부분을 확인하여 코드를 파악한다. - 최소 픽셀 크기와 최대 픽셀 크기 Clamp를 이용하여 화면 크기가 정해진 크기보다 커지지 않도록 제한한다. int newWidth = Mathf.Clamp(rc.Right - rc.Left, minWidthPixel, maxWidthPixel); int newHeight = Mathf.Clamp(rc.Bottom - rc.Top, minHeightPixel, maxHeightPixel); - 전체 화면 제한 플래그와 이전 프레임의 전체 화면 여부 전체 화면 제한 플래그는 창 화면만 지원하는 게임을 위해 존재하는 것으로 보이며 전체 화면이 되었을 때 다시 창 화면으로 되돌리는 역할을 한다. if (!all..
-
알고리즘...75일지 2021. 10. 22. 01:00
B 트리 제거 메소드 구현 진행 형제 노드에 여유 노드가 있는 경우를 처리한다. BTreeNode /// /// 이 노드에서 키를 인출해도 안정적인지 여부를 반환한다. /// /// 키를 인출해도 안정적인지 여부 bool BTreeNode::IsAbleToWithdraw() { return size > TotalKeyCount / 2; } 노드를 제거한 뒤 처리를 위해 함수를 구현하다가 노드를 삭제하는 건 리프 노드가 아닌 중간 노드에서도 발생할 수 있다는 것을 알게 됐다. 이 부분에서도 이진 검색 트리와 동일하게 해당 키에 자식 노드가 존재하는 경우 자식 노드에서 적절한 키를 가져와 값을 교환하고 리프 노드에서 삭제가 진행되도록 구현해야 할 필요가 있어 보인다. B 트리는 상위 노드가 되면 항상 두 개..
-
JUNGOL...155일지 2021. 10. 22. 00:31
Intermediate_Coder/백트래킹-DFS/벽장문의 이동 문제 n개의 같은 크기의 벽장들이 일렬로 붙어져 있고 벽장의 문은 n-2개만이 있다. 한 벽장 앞에 있는 문은 이웃 벽장 앞에 문이 없다면(즉, 벽장이 열려있다면) 그 벽장 앞으로 움직일 수 있다. 그림은 7개의 벽장의 예이다. 그림에서 2번 벽장과 5번 벽장이 열려있고, 나머지 벽장은 닫혀 있다. 벽장 문은 좌우 어느 쪽이든 그 이웃 벽장이 열려 있다면 그 쪽으로 한 칸씩 이동할 수 있다. 그림에서 주어진 상태에서는 1번 벽장을 닫고 있는 벽장문을 오른쪽으로 한 칸 이동함으로써 1번 벽장을 사용할 수 있다. 이때 2번 벽장은 닫혀져 사용할 수 없다. 역시 5번 벽장이 열려 있으므로 4번 벽장 또는 6번 벽장 앞의 벽장문을 5번 벽장 앞으로..
-
알고리즘...74일지 2021. 10. 21. 19:12
B 트리 삭제 처리 삽입 처리와 마찬가지로 일단 노드에서 키를 제거한 뒤 노드의 크기가 k / 2 보다 작아지면 언더플로우 처리를 진행한다. 먼저, 일반적인 삭제 연산을 구현한다. BTreeNode /// /// 주어진 데이터를 포함하는 키를 노드에서 제거한다. /// /// 제거할 값 /// 성공 여부 bool BTreeNode::Delete(int data) { BTreeNodeKey* key{ keyRoot }; while (key != nullptr) { if (key->value == data) { return Delete(key); } } return false; } /// /// 주어진 키를 노드에서 제거한다. /// /// 제거할 키 /// 성공 여부 bool BTreeNode::Delet..
-
JUNGOL/Intermediate_Coder/백트래킹-DFS/1662 : 비숍코딩 테스트/JUNGOL 2021. 10. 21. 00:47
Intermediate_Coder/백트래킹-DFS/비숍 문제 서양장기인 체스에는 대각선 방향으로 움직일 수 있는 비숍(bishop)이 있다. 과 같은 정사각형 체스판 위에 B라고 표시된 곳에 비숍이 있을 때 비숍은 대각선 방향으로 움직여 O로 표시된 칸에 있는 다른 말을 잡을 수 있다. 그런데 체스판 위에는 비숍이 놓일 수 없는 곳이 있다. 에서 체스판에 색칠된 부분은 비숍이 놓일 수 없다고 하자. 이와 같은 체스판에 서로가 서로를 잡을 수 없도록 하면서 비숍을 놓는다면 과 같이 최대 7개의 비숍을 놓을 수 있다. 색칠된 부분에는 비숍이 놓일 수 없지만 지나갈 수는 있다. 정사각형 체스판의 한 변에 놓인 칸의 개수를 체스판의 크기라고 한다. 체스판의 크기와 체스판 각 칸에 비숍을 놓을 수 있는지 없는지에..
-
알고리즘...73일지 2021. 10. 20. 14:47
B 트리 삽입 메서드 오버플로우 처리 오버 플로우 처리 시 필요한 노드를 분할하는 함수 추가했으며 기존 키 삽입 시 좌우 자식을 적절하게 넘겨주는 처리를 추가했다. BTreeNodeKey /// /// 새 키를 기존 키의 왼쪽에 삽입한다. /// /// 삽입할 키 void BTreeNodeKey::AddKeyToPrev(BTreeNodeKey* newKey) { BTreeNodeKey* prevKey{ prev }; if (prevKey != nullptr) { prevKey->next = newKey; newKey->prev = prevKey; prevKey->right = newKey->left; } newKey->next = this; prev = newKey; left = newKey->right..
-
JUNGOL...154일지 2021. 10. 20. 10:44
Intermediate_Coder/백트래킹-DFS/비숍 문제 서양장기인 체스에는 대각선 방향으로 움직일 수 있는 비숍(bishop)이 있다. 과 같은 정사각형 체스판 위에 B라고 표시된 곳에 비숍이 있을 때 비숍은 대각선 방향으로 움직여 O로 표시된 칸에 있는 다른 말을 잡을 수 있다. 그런데 체스판 위에는 비숍이 놓일 수 없는 곳이 있다. 에서 체스판에 색칠된 부분은 비숍이 놓일 수 없다고 하자. 이와 같은 체스판에 서로가 서로를 잡을 수 없도록 하면서 비숍을 놓는다면 과 같이 최대 7개의 비숍을 놓을 수 있다. 색칠된 부분에는 비숍이 놓일 수 없지만 지나갈 수는 있다. 정사각형 체스판의 한 변에 놓인 칸의 개수를 체스판의 크기라고 한다. 체스판의 크기와 체스판 각 칸에 비숍을 놓을 수 있는지 없는지에..