분류 전체보기
-
알고리즘...66일지 2021. 10. 10. 00:22
B 트리 삽입 함수 구현 진행 삽입 알고리즘 처리 중 재귀적으로 처리해야 하는 부분을 적용했다. BTree::Insert /// /// 주어진 값을 B 트리에 삽입한다. /// /// 삽입할 값 void BTree::Insert(int data) { if (Exists(data)) { return; } Insert(_root, data); } /// /// 주어진 값을 B 트리에 삽입한다. /// /// 삽입할 노드 /// 삽입할 값 void BTree::Insert(BTreeNode* parent, int data) { // 루트가 빈 값이었던 경우 if (parent == nullptr) { BTreeNode* node{ _nodeManager.Pop() }; node->Insert(data); _r..
-
JUNGOL...147일지 2021. 10. 8. 12:53
Intermediate_Coder/백트래킹-DFS/비숍 문제 서양장기인 체스에는 대각선 방향으로 움직일 수 있는 비숍(bishop)이 있다. 과 같은 정사각형 체스판 위에 B라고 표시된 곳에 비숍이 있을 때 비숍은 대각선 방향으로 움직여 O로 표시된 칸에 있는 다른 말을 잡을 수 있다. 그런데 체스판 위에는 비숍이 놓일 수 없는 곳이 있다. 에서 체스판에 색칠된 부분은 비숍이 놓일 수 없다고 하자. 이와 같은 체스판에 서로가 서로를 잡을 수 없도록 하면서 비숍을 놓는다면 과 같이 최대 7개의 비숍을 놓을 수 있다. 색칠된 부분에는 비숍이 놓일 수 없지만 지나갈 수는 있다. 정사각형 체스판의 한 변에 놓인 칸의 개수를 체스판의 크기라고 한다. 체스판의 크기와 체스판 각 칸에 비숍을 놓을 수 있는지 없는지에..
-
알고리즘...65일지 2021. 10. 8. 12:52
B 트리 삽입 처리 진행 삽입 처리 중 노드가 가득 찬 경우 새로운 노드를 만드는 코드 추가 BTreeNode /// /// 삽입 처리를 위한 적절한 노드를 반환한다. /// /// 추가할 값 /// 적절한 노드 BTreeNode* BTreeNode::GetProperNodeToInsert(int data) { for (int i = 0; i < size; i++) { if (data < keys[i].value) { return keys[i].left; } if (keys[i].value < data) { if (i == size) { return keys[i].right; } else if (data < keys[i + 1].value) { return keys[i].right; } } } retur..
-
JUNGOL...146일지 2021. 10. 7. 14:56
Intermediate_Coder/백트래킹-DFS/비숍 문제 서양장기인 체스에는 대각선 방향으로 움직일 수 있는 비숍(bishop)이 있다. 과 같은 정사각형 체스판 위에 B라고 표시된 곳에 비숍이 있을 때 비숍은 대각선 방향으로 움직여 O로 표시된 칸에 있는 다른 말을 잡을 수 있다. 그런데 체스판 위에는 비숍이 놓일 수 없는 곳이 있다. 에서 체스판에 색칠된 부분은 비숍이 놓일 수 없다고 하자. 이와 같은 체스판에 서로가 서로를 잡을 수 없도록 하면서 비숍을 놓는다면 과 같이 최대 7개의 비숍을 놓을 수 있다. 색칠된 부분에는 비숍이 놓일 수 없지만 지나갈 수는 있다. 정사각형 체스판의 한 변에 놓인 칸의 개수를 체스판의 크기라고 한다. 체스판의 크기와 체스판 각 칸에 비숍을 놓을 수 있는지 없는지에..
-
알고리즘...64일지 2021. 10. 7. 14:51
B 트리 삽입 함수 구현 시작 먼저 삽입 처리를 수월하게 하기 위해 노드에 삽입 함수를 구현하고 삽입된 키의 개수를 수월하게 관리하기 위해 노드에 현재 키의 개수를 도입한다. BTree.h /// /// B 트리의 노드에서 사용할 키 /// struct BTreeNodeKey { BTreeNodeKey() : left(nullptr), value(0), right(nullptr) {} void Clear(); void Set(int data); BTreeNode* left; int value; BTreeNode* right; }; /// /// B 트리에 사용할 노드 /// struct BTreeNode { static const size_t TotalKeyCount{ 4 }; BTreeNode(); ~..
-
유니티 화면 비율 고정 처리...11일지 2021. 10. 6. 11:52
화면 비율 변경 횟수 변경 화면 비율 변경 처리가 씹히지 않도록 SetResolution를 여러 번 반복하도록 코드를 추가했다. ResolutionController.cs public class ResolutionController : MonoBehaviour { // ... public int RefreshCount { get; set; } = 3; // ... private IEnumerator SetFixedResolution() { // ... for (int i=0; i< RefreshCount; i++) { Screen.SetResolution(m_screenSizeX, m_screenSizeY, false); yield return null; } // ... } // ... } 실행 결과는 ..
-
JUNGOL/Intermediate_Coder/백트래킹-DFS/1824 : 스도쿠코딩 테스트/JUNGOL 2021. 10. 6. 11:39
Intermediate_Coder/백트래킹-DFS/스도쿠 문제 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 몇 몇 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. (1) 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. (2) 굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 위의 예의 경우, 첫째 줄에는 1을 제외한 나머지 2부터 9까지의 숫자들이 이미 나타나 있으므로 첫째 줄 ..
-
알고리즘...63일지 2021. 10. 6. 10:17
B 트리 검색 구현 다진 검색 트리인 B 트리의 검색을 구현한다. BTree::Exists /// /// B 트리를 확인하여 주어진 값이 트리에 존재하는지 여부를 반환한다. /// /// 확인할 값 /// 존재 여부 bool BTree::Exists(int data) { BTreeNode* node{ _root }; while (node != nullptr) { for (int i = 0; i keys[i].value == data) { return true; } if (data keys[i].value) { node = node->keys[i].left; break; } if (node->keys[i].val..