vidigummy KAU 84

6번 과제(Polynomial && Chain List)

in poly:poly() - O(1)void poly_append(float c, int e); O(1)void display_poly() - O(n)void poly_multiply - O(n^2)void add - O(n^2)void padd - O(n)void MakePolFromLine - O(n)void calculate - O(n)poly operator+ - add 사용poly operator* - poly_multiple 사용outside poly:operator :MakePolFromLine 사용 이것도 곱셈이 제대로 안되는 코드이다. 뭐 지금은 할 수 있겠지만 그 떄는 매우 어려웠던 것 같다. 다시 하고 싶지도 않고.

과제 5(Chain List 구현 && chainiterator 구현)

ChainNode::ChainNode(T value = 0, ChainNode *pos = NULL); - 체인 노드를 새로 만들어 주는 ChainNode 객체의 메써드로써, 일반 대입만 하기 때문에 O(1)을 차지한다.void Chain::MakeChainNodeFromList(); - 한 줄로 입력 받은 String을 띄어쓰기 기준으로 정수형 자료로 변환해 Chain을 구성하는 메써드, 입력 String의 길이가 n이라 했을 때 O(n)이다.void Chain::MakeChainNode(T value); - Chain::MakeChainNodeFromLis()에서 쓰이며, 파라미터 값을 해당 노드에 넣어준 다음 다음 노드를 만들어 준다. O(1).Chain::Chain(); - Type이 T인 체인 ..

4번 과제((Reverse polish (expression || notation)) && stack

1. '(' 를 만나면 스택에 푸시한다. 2. ')' 를 만나면 스택에서 '('가 나올 때까지 팝하여 출력하고 '(' 는 팝하여 버린다. 3. 연산자를 만나면 스택에서 그 연산자보다 낮은 우선순위의 연산자를 만날 때까지 팝하여 출력한 뒤에 자신을 푸시한다. 4. 피연산자는 그냥 출력한다. 5. 모든 입력이 끝나면 스택에 있는 연산자들을 모두 팝하여 출력한다. 후위 계산법 자체는 문제가 되지 않지만, 중위 계산식을 후위계산식으로 바꾸는 것에서 어려움을 많이 겪었다. 그래서 중위계산식을 후위계산식으로 변환시키기 위해 void Template::ITP 를 만들고 그에 따른 보조 함수로 IsOperator(연산자인지 아닌지 확인), precedence(연산자의 우선순위 확인)를 만들었다. 또한 계산을 위해 ca..

자료구조 3번 과제(연산자 overloading && Polynomial)

사용된 함수는 총 다섯 개로 void Polynomial::summ, void polynomial::mul,int Polynomial::GetHigh, void polynomial::PrintAll, void newPol이 있다.Polynomial::summ(polynomial *a, const Polynomial& b)- O(n) - 두 다항식을 더하는 함수. 클래스 b는 const로 설정하여 변경할 수 없도록 하였다.Polynomial::mul(Polynomial *a, Polynomial *b, Polynomial *temp) - O(n^2) - 두 다항식을 곱하는 함수, 클래스 temp는 결과값이 들어갈 빈 class로 설정한다.Polynomial::PrintAll(int x) - O(n) - 해..

2018.03.14의 자료구조 첫 과제

새 학기가 시작됐고, 매우 바쁘게 살고 있다. 학생회 부장을 맡게 되어 매우 귀찮게 되었고, 동아리 임원 까지 맡게 되었다. 군대 전에 마지막으로 불태우는 것 같기도 하다. 뭐 어쨌든 문제는 이거다. 이 문제는 file open을 사용한 입력법과 선택정렬, 문장부호 제거(텍스트 제외한 모든 것), 중복 제거 그리고 마지막으로 이진 탐색의 구현을 요구하고 있다. 그리하여 작성자가 구현한 함수는 strcmp_r(O(n^2)), test(O(n)), GetWord(O(n)), sort_r(선택정렬,O(n^2)), binSearch(logn) 이다.아래의 그림은 큰 범위의 함수와 사용된 함수들이다.1. strcmp_r(char *a, char *b) : a와 b를 비교(소문자로 변환하여)하여 a가 크면 1, b..

백준 기초 알고리즘 2강

백준 알고리즘 2강(스택)을 들었다. 그래서 문제를 다 풀까 하다가 예전에 C로 스택을 구현하면서 다시는 하지 않겠다고 다짐했던 기억이 나서 그건 건너 뛰고 다른 세 문제(BOJ 9012, 10799, 1406)을 풀고 치우기로 했다. 먼저 BOJ 9012인데 백준님께서는 이걸 스택을 사용하여 풀라고 하셨다. 그러셨다. 사실 배열만으로 풀 수 있는 문제지만 그러라고 하셨다. 난 모른다.솔직히 말해서 함수를 쓸 필요도 없었다. 함수 네이밍 센스가 매우 구린것도 인정한다. 판독 함수면서 getline이라니. 정말 구리다. 어쨌든 이렇게 만든 이유는 순전히 습관이다. 필자는 암기력이 매우 약하다. 그렇기 때문에 문제를 풀다가 한번 놓쳐버리면 바로 사라져버린다. 그렇기에 언제든 쓸 수 있는 함수를 만들어 놓고 ..

백준 알고리즘 기초 1강

A+B 쪽은 하나만 하고 싶다. 11022번 그냥 A+B 문제에서 할 일만 많아진 느낌이다. 코드는 다음과 같다. 그대로 출력하기는 두 개 다 올리겠다. 11718, 11719BOJ 11718 BOJ 11719 뭘 하는 걸까. 다른건 다 파이썬으로 했고... 별찍기나 하자.그 중에서도 그나마 난이도가 있는 BOJ 10992로 하자. 그냥 이런거 찍으면 성공인데, 띄어쓰기 숫자만 신경써주면 된다.이걸로 1강이 끝났다.