일지
-
JUNGOL...174일지 2022. 1. 4. 18:50
Intermediate_Coder/그래프탐색-DFS/STL vector 2 문제 이 튜토리얼에서는 벡터(vector)의 부가적인 기능을 마저 배우고, sort()등의 함수를 벡터(vector)에 어떻게 적용시키면 되는지를 배워보자. 전편에서 다루었던 push_back()과 size() 기능은 제외한다. 아래의 내용은 가장 중요한 엑기스만으로 구성되어 있으며, 이외의 기능들은 studylab등의 학습자료를 참고하여 차차 익히도록 하라. 1. pop_back() 배열의 마지막 원소 하나를 제거하여 배열의 크기를 1 줄인다. 이미 크기가 0인 배열에서 이 함수를 호출하면 런타임 에러가 난다. 예) 크기 4인 벡터(arr)가 [1,2,3,4]인 경우 arr.pop_back()을 적으면, 벡터가 [1,2,3]이 ..
-
알고리즘...97일지 2022. 1. 4. 14:55
선형 조사 알고리즘 구현 먼저, 개방 주소 방법에서는 개수가 무한히 증가될 수 없으므로 일정 수준보다 값이 많이 들어가면 개수를 늘리는 처리를 추가한다. int LimitCount() { return Size() * 3 / 4; } bool HashTable_OpenAddressing::NeedToResize() { return m_usedCount >= LimitCount(); } 이후 테이블의 Resize를 처리하는 함수를 추가한다. void HashTable_OpenAddressing::Resize() { vector oldData; oldData.reserve(Size()); for (int i = 0; i < Size(); i++) { if (m_table[i] != Empty && m_tabl..
-
알고리즘...96일지 2021. 12. 30. 18:42
해시 테이블 충돌 처리 구현 진행 개방주소 방법 구현을 위한 베이스 클래스 제작 HashTable_OpenAddressing.h #pragma once #include "../Common.h" #include "HashTable.h" #include #include using std::vector; using std::list; /// /// 충돌 해결 방법 중 체이닝을 구현한 해시 테이블 /// class HashTable_OpenAddressing : public HashTable { public: HashTable_OpenAddressing(HashFunction hashFunction = HashFunction::Division) : HashTable(hashFunction) {} virtual ..
-
JUNGOL...173일지 2021. 12. 30. 16:49
Intermediate_Coder/그래프탐색-DFS/Tutorial: STL vector 1 문제 여러분이 만든 프로그램은 항상 어떤 비용(cost)을 지불한다. 비용이란 돈을 뜻하는 것이 아니라, 컴퓨터가 프로그램을 실행함으로써 소모하는 자원을 뜻한다. 프로그램 작성 과정에서 여러분들이 제일 많이 고민하게 되는 비용은 크게 두 가지,프로그램 실행시간과 사용 메모리(쉽게말해 시간과 공간)일 것이다. 오늘은 이중에서도, 공간 절약(메모리 절약)의 방법으로써 벡터(vector)를 사용하는 방법을 배워보도록 한다. 우선 정적(static)이라는 말과, 동적(dynamic)이란 말의 차이를 알아보자. 배열을 정적(static)으로 선언한다는 것은 아래와 같이 선언 단계에서 배열의 크기를 미리 정해놓는다는 뜻이다..
-
JUNGOL...172일지 2021. 12. 29. 17:42
Intermediate_Coder/그래프탐색-DFS/Tutorial: for문의 두번째 문법(range_based_for) 문제 쉬어가는 시간! 오늘은 엄청 쉬운 것을 배운다. 거저 먹기식 설명을 이해하고, 거저 먹기식 문제를 풀어보자! 크기 10의 배열이 있다고 하자. 그 배열의 내용을 출력하는 프로그램을 작성하고자 한다면 여러분들은 보통 아래와 같은 프로그램을 작성할 것이다. #include int main() { int arr[10] = {1,9,9,3,0,2,2,7,2,1}; ///예시 배열 int n; for(int i = 0 ; i < 10 ; i++) printf("%d " , arr[i]); ///고전적인 방법 return 0; } arr[i]라는 표현은 사실 2차적인 해석을 요구하는 표..
-
알고리즘...95일지 2021. 12. 29. 17:35
해시 테이블, 체이닝 처리 구현 HashTable_Chaining.h #pragma once #include "../Common.h" #include "HashTable.h" #include #include using std::vector; using std::list; /// /// 충돌 해결 방법 중 체이닝을 구현한 해시 테이블 /// class HashTable_Chaining : public HashTable { public: HashTable_Chaining(HashFunction hashFunction = HashFunction::Division); virtual void Add(int data) override; virtual void Remove(int data) override; virt..
-
JUNGOL...171일지 2021. 12. 27. 14:23
Intermediate_Coder/그래프탐색-DFS/치즈 문제 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모칸에 엑스친 부분)에는 치즈가 놓여 있지 않으며 치즈에는 하나 이상의 구멍이 있을 수 있다. 이 치즈를 공기 중에 놓으면 녹게 되는데 공기와 접촉된 칸은 한 시간이 지나면 녹아 없어진다. 치즈의 구멍 속에는 공기가 없지만 구멍을 둘러싼 치즈가 녹아서 구멍이 열리면 구멍 속으로 공기가 들어 가게 된다. 의 경우, 치즈의 구멍을 둘러싼 치즈는 녹지 않고 ‘c’로 표시된 부분만 한 시간 후 에 녹아 없어져서 와 같이 된다. 다시 한 시간 후에는 에서 ‘c’로 표시된 부분이 녹아 없어져서 과 같이 된다. ..
-
유니티 화면 비율 고정 처리...25일지 2021. 12. 22. 15:12
최대화 처리 최대화 처리를 위해 작업표시줄 등을 제외한 창의 순수한 크기를 구해준다. // 윈도우 창 border 사이즈 RECT windowRect = new RECT(); RECT clientRect = new RECT(); GetWindowRect(m_hwnd, out windowRect); GetClientRect(m_hwnd, out clientRect); int windowBorderSizeX = (windowRect.Right - windowRect.Left) - (clientRect.Right - clientRect.Left); int windowBorderSizeY = (windowRect.Bottom - windowRect.Top) - (clientRect.Bottom - clientR..