c++ 92

Hash Table 자료구조 (C++)

" class Cell " - key, value 값을 저장하는 단위로 쓰이는 객체이다. 1. 변수 - int key : key 값을 저장한다. - int value : value 값을 저장한다. - int flag : value값의 유뮤와 별개로 값이 있었는지 여부를 나타내는 값이 필요하다. 이를 저장한다. -> ISITEM(0), NOITEM(1), AVAILABLE(2) 로 저장한다. 2. 함수 - Cell() : 생성자 함수로, 초기화 작업을 한다. 3. class Cell ADT class cell { public: int key; int value; int flag; cell() { this->key = -1; this->value = -1; this->flag = NOITEM; } }; " ..

자료구조 2020.12.16

Binary Search Tree 자료구조 (C++)

" class Node " - Tree에 들어갈 데이터를 Node로 저장한다. 1. 변수 - int data : 데이터 저장한다. - Node* parent : 부모Node를 가르키는 포인터를 저장한다. - Node* leftChild : 왼쪽 자식을 가르키는 포인터를 저장한다. - Node* rightChild : 오른쪽 자식을 가르키는 포인터를 저장한다. 2. 함수 - 각 변수에 대해 get, set 함수가 필요하다 3. class Node ADT class Node { private: int data; Node* parent; Node* leftChild; Node* rightChild; public: Node() {//생략 } Node(int data) {//생략 } Node* getParent(..

자료구조 2020.12.16

Heap 기반 Priority Queue 자료구조 (c++)

" class Heap " 1. 변수 - vector v : heap에 값을 저장하기 위한 vector가 필요하다. - int root_idx : 보통 heap의 root index는 0이 아닌 1이 들어간다. 이를 저장하기 위한 변수이다. - int heap_size : 현재 heap에 몇가지 내용이 들어가있는지를 저장한다. 이는 마지막위치 index로 쓰이기도 한다. - int direction : Heap 구조가 MinHeap인지, MaxHeap 인지 구별점이 필요하다. 또한, upHeap 등에서 비교시에도 사용된다. 2. 함수 - int size() : heap_size를 반환한다. - int isEmpty() : heap_size가 0인지 여부를 반환한다. - void swap(int idx1,..

자료구조 2020.12.15

DAY5 초급 - 백준 17273번 (C++)

www.acmicpc.net/problem/17273 17273번: 카드 공장 (Small) 진서는 CTP 카드 공장의 노동자이다. 공장에는 N개의 카드가 있으며 각 카드에는 앞면과 뒷면에 숫자가 쓰여있다. 공장장 노진의 명령에 따라서 진서는 카드를 뒤집어야 한다. 명령은 M번 내려지� www.acmicpc.net #include using namespace std; int main() { int N,M,K; int front[100] = {0}; int back[100] = {0}; int result[100]; int sum = 0; cin>>N>>M; for(int i=0; i>front[i]>>back[i]; result[i] = front[i]; } while(M--) { cin>>K; for(..

DAY4 고급 - 백준 2505번 (C++)

www.acmicpc.net/problem/2505 2505번: 두 번 뒤집기 첫줄에는 숫자판의 크기를 나타내는 정수 N (5≤N≤10,000)이 주어진다. 그 다음 줄에는 두 개의 구간이 뒤집혀진 놀이판의 상태를 나타내는 숫자들이 하나의 공백을 두고 나타난다. www.acmicpc.net #include #include using namespace std; void reverse(int array[], int left, int right) { if(left < right) { swap(array[left],array[right]); reverse(array,left+1,right-1); } } int main() { int n; int array[10001] = {0}; int temp[10001] =..

DAY4 중급 - 백준 10819번 (C++)

www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net #include #include using namespace std; int main() { int array[8] = {0}; int n; int sum = 0; int temp = 0; cin>>n; for(int i=0; i>array[i]; } sort(array,array+n); do { for(int i=0; i

DAY4 초급 - 백준 17262번 (C++)

www.acmicpc.net/problem/17262 17262번: 팬덤이 넘쳐흘러 선물 포장 공장을 말아먹은 욱제는 계곡에서 백숙을 파느라 학교에 자주 가지 못한다. 하지만 월클의 인생은 피곤한 법! 욱제는 지금처럼 힘든 시기에도 자신을 기다리는 5조5억명의 열렬한 팬� www.acmicpc.net #include using namespace std; int main() { int n,s,e; int max=-1,min=100000; int result; cin>>n; while(n--) { cin>>s>>e; if(s > max) max = s; if(e < min) min = e; } result = max-min; if(result < 0) result = 0; cout

DAY3 중급 - 백준 17287번 (C++)

www.acmicpc.net/problem/17287 17287번: The Deeper, The Better 대괄호, 중괄호, 소괄호와 0부터 9까지의 숫자로 이루어진 문자열 S가 주어진다. 문자열 S는 올바른 괄호 문자열에 숫자를 끼워 넣은 형태이고, 두 숫자가 서로 붙어있는 경우는 없다. 올바른 괄 www.acmicpc.net #include using namespace std; int main() { string s; int max = -1,sum = 0; cin>>s; for(int i=0; i= '0' && s[i] max) max = sum; } } cout

DAY3 초급 - 백준 2828번 (C++)

www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M>N>>M>>count; left = 0; right = M; while(count--) { cin>>location; if(location > right) { temp = location - right; result += temp; right += temp; left += temp; } else if(location

DAY2 고급 - 백준 13022번 (C++)

www.acmicpc.net/problem/13022 13022번: 늑대와 올바른 단어 첫째 줄에 단어가 주어진다. 단어는 w, o, l, f로만 이루어져 있으며, 길이는 50을 넘지 않는다. www.acmicpc.net #include using namespace std; int main() { char input = ' '; int count[4] = {0}; while(input != '\n') { cin.get(input); //주기상 처음, w 입력 if(input == 'w') { count[0]++; } //종료 입력 else if(input == '\n') { //주기상 정상종료 if(count[0] == 0) { cout

DAY2 중급 - 백준 13413번 (C++)

www.acmicpc.net/problem/13413 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검� www.acmicpc.net #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(NULL); int t,n; string before; string after; int Wcount = 0; int Bcount = 0; cin>>t; while(t--) { cin>>n>>before>>after; for(int i=0; i Bcount) cout

DAY2 초급 - 백준 11718, 11719번 (C++)

www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시� www.acmicpc.net www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net #include using namespace std; int main() ..