#pragma once template class unique_ptr { private: T* data; //static bool count = false; public: // 복사생성자 삭제 (이동만 가능하도록) unique_ptr(const unique_ptr& rhs) = delete; unique_ptr& operator= (const unique_ptr& rhs) = delete; // 종료생성자 ~unique_ptr() { if(data != nullptr) delete data; } //생성자 unique_ptr() : data(nullptr) {} unique_ptr(T* t) : data(t) {} //이동 생성자 unique_ptr(unique_ptr&& t) noexcept{ this..
사용언어 : C++ BFS 사용하여서, 해결하면 된다. 다만 여기서 주의할 점은 날짜별로 체크하기 때문에, q.size만큼 다 돌린후 날짜 + 1을 하였다. #include #include #include #include using namespace std; #define MAXR 1001 vector arr; int visit[MAXR][MAXR] = { 0 }; int coun; queue q; void BFS(); int check[4][2] = { {1,0},{-1,0},{0,1},{0,-1} }; int N, M; bool compare(int i, int j) { return j < i; } int main() { ios_base::sync_with_stdio(false); cin.tie(0)..
사용언어 : C++ 심심해서 Vector을 그냥 만들어 봤습니다. 심심할때 마다 기능을 추가할 예정이니 간단하게만 봐주세요! #include template class Vector { public: Vector() { this->size = 0; capacity = 5; data = new T[capacity]; } Vector(int num) { this->size = 0; capacity = num; data = new T[num]; } void push_back(T n) { if (size == capacity) { resize(capacity*2); } data[size++] = n; } void resize(int n) { capacity = n; T* tmp = new T[capacity]; ..
사용언어) C++ Queue란 FIFO(First Info First Out)의 형태를 가지고 있는 자료구조이다. front와 rear포인트를 활용하여 입력과 출력을 구현한다. ㅁ front -> ✔ ✔ ✔ ✔ rear -> ㅁ ㅁ ㅁ 1차원 배열을 이용하여 만들었다. 물론 vector나 다른 방식을 이용하면 다른 방식으로도 만들 수 있지만 일단 기초를 다지기 위해서 1차원 배열로 만들었다. 선형큐인줄 알고 만들었지만, 알고보니 선형큐의 보안버전인 원형큐였다는 슬픈 사실이... #include using namespace std; template class Queue { private: T* datas; int front, rear; public: Queue() { datas = new T[n]; fro..
사용언어 : C++ 옛날에 만들었던 내용인데, 두개의 다항식을 입력하면 두 다항식의 합, 차, eval 등을 해주는 프로그램입니다. 다항식의 끝은 마지막 계수 입력이 0이면 하나의 다항식이 입력되는 걸로 취급합니다. #include #include #include typedef struct node { int data; // 계수 int exp; // 지수 struct node *next; // 링크 연결 부분. }node; typedef node* point; point avail; void retNode(point node) { node->next = avail; avail = node; } void cerase(point ptr) { avail = NULL; point temp; if (ptr) {..

사용언어 : C++ - 버블정렬 버블 정렬은 차례대로 첫 번째와 두 번째, 두 번째와 세 번째 .... 이렇게 해서 마지막까지 비교되면, 마지막을 빼고 다시 처음부터 비교하는 방식이다 즉, 1) 1 - 2 번째 비교하여 1이 크면 변경 2) 1을 반복하여 끝까지 진행 3) 끝까지 진행하면 마지막자리를 빼고 다시 1부터 진행. 1번에서 2번 과정 진행 5번 고정 후 다시 1번에서 2번 과정 진행 - 의사코드 array arr = { 1,6,4,2,3,4,6,8,9,2,4 }; void BubbleSort(array& arr) { for (int i = 0; i ..

사용언어 : C++ - 워셜 알고리즘은 관계의 전이 폐쇄를 구하는 효율적인 방법이다. 여기서 관계란 n * n 행렬을 말하고, 이 행렬의 전이 폐쇄를 구하는 알고리즘 중 하나가 워셜 알고리즘이다. - 여기서 폐쇄란, R이 행렬 A에 대한 관계이고, 만약 어떤 특성 P(대칭, 전이, 반사)를 가지지 않는다면 R을 포함하면서 특성 P를 만족시키는 A에 대한 가장 작은 관계 S를 말한다. 고로 전이 폐쇄는, 전이 특성을 포함하는 가장 작은 관계 S를 말한다. 워셜 알고리즘의 의사코드 W := M for k := 1 to n for i := 1 to n for j := 1to n W(i,j) := W(i,j) or ( W(i,k) and W(k,j) ) return W{ W = [w(i,j) is M(R*)] ..

사용언어) C++ GitHub) https://github.com/Hong-Study/MineSweeper GitHub - Hong-Study/MineSweeper Contribute to Hong-Study/MineSweeper development by creating an account on GitHub. github.com 게임의 전체적인 과정은 다 만들었다. 그런데 친구에게 게임을 보여주니까, 빠른 속도로 이동할 때 화면이 끊기는 깜빡임이 발생해서 아쉽다는 얘기를 들었다. 그래서 친구가 깜빡임을 없애기 위해서 더블 버퍼링이라는 기술을 한번 추가해 보는게 어떻겠냐고 추천을 해서, 넣어보게 되었다. 깜빡임 발생 이유는? 보통 CMD 에서 우리가 std::cout 로 출력을 하게 되면 하나의 화면에 ..
- Total
- Today
- Yesterday
- 시스템보안
- 지뢰찾기
- 학교
- c++
- Dreamhack
- 레지스터
- 백준
- 알고리즘
- 멀티쓰레드
- STL
- 컨퍼런스
- 드림핵
- 보안
- queue
- BFS
- 워셜알고리즘
- 자료구조
- 더블버퍼링
- Select모델
- 개발
- 인제대학교
- 정보보안
- 야경
- 링크드 리스트
- 고양이
- 스레드풀
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |