본문 바로가기

전체 글

[C++][백준 11654][문자열] 아스키 코드 - 컴도리돌이 문제 알파벳 소문자, 대문자, 숫자 0 - 9 중 하나가 주어졌을 때, 주어진 글자의 아스키코드 값을 출력하시오. (입력은 1개의 문자만 가능) 소스코드 #include using namespace std; int main(void) { char input; cin >> input ; cout 더보기
[C++] 예외 처리(Exception Handling) - 컴도리돌이 outline C++ Exceptions : Basics try, catch, and throw Matching Catch Handlers Uncaught Exceptions Cleaning Up Unwinding the stack C++ 예외처리 (C++ Exceptions : Basics) 예외 처리(Exception Handling)란 프로그램 실행 도중에 일어나는 비정상적인 상황이 벌어질 때, 이를 처리하는 과정을 말한다. #include using namespace std; double Division(int a, int b) { if (b == 0) {throw "Division by zero condition!";} return (a / (double) b); } int main () { i.. 더보기
[C++] 복사 생성자, 연산자 오버로딩(Copy Constructor, Operator Overloading)- 컴도리돌이 outline copy constructor friend, static Operator overloading 복사 생성자(Copy constructor) 같은 클래스의 다른 객체를 사용하여 또 다른 새로운 객체에 복사하여 생성한다. 복사 생성자(copy constructor)는 값을 가진 객체(object)를 반환할 때 사용되는데, 이때 또 다른 값을 가진 객체(object)를 변수(argument)를 받아서 copy를 해준다. ClassName(const ClassName& old_obj); class Point{ public: double x, y; // ... }; Point GetScaledPoint(double scale, Point p) { Point p_new; p_new.x = p.x*sc.. 더보기
[C++] 템플릿(Template) - 컴도리돌이 outline intro to Generic Programming Function Template Class Template STL templates and inheritance 일반화 프로그래밍(generic Programming) 일반화 프로그래밍은 알고리즘에서 매개변수로 제공되는 특정 유형(specific types)에 대해 필요할 때 인스턴스화(instantiated)하는 to-be-specified-later의 관점에서 작성된다. C++에서 template는 서로 다른 타입으로 인해 반복적으로 작성해야 하는 코드를 피하기 위해 사용된다. 즉, 타입에 대해 일반화 접근(Generic Approach)을 한다. 함수(functions)와 클래스(class)에서 template를 사용할 수 있다. t.. 더보기
[C++] 다형성(Polymorphism)-(1) - 컴도리돌이 outline Pointer, References and Inheritance Virtual Function Virtual Destructor Caution : Object Slicing C++에서 다형성(Polymorphism in C++) 같은 함수 호출에 대해 서로 다른 방법으로 응답을 하는 것을 객체지향에서 다형성이라 한다. 포인트, 주소 그리고 상속(Pointers, References and Inheritance) C++에서 다형성을 사용하기 전에, 상속에서 포인터와 주소 연산이 어떻게 사용되는지 이해가 필요하다. #include using namespace std; class Person { public: void Talk() { cout Talk(); student_st->Study(); .. 더보기
[C++] 상속(Inheritance) - 컴도리돌이 Outline Inheritance Overriding Constructor, Destructor & Inheritance Multiple Inheritance const & Class 상속(Inheritance) 부모 클래스(parent class)를 자식 클래스(child class)에 상속을 시키면 부모 클래스(parent class)의 private 값을 제외한 함수, 변수는 자식 클래스(child class)에서 사용이 가능하다. 상속받을 클래스의 이름 옆에 :와 접근 제한자, 그리고 상속할 클래스의 이름을 붙여주면 된다. 상속 : Is-a 관계( Inheritance : Is-a Relationship) "A가 B이다.(A is a B)"라는 관계가 형성될 때 상속을 사용할 수 있다. 예를 들.. 더보기
[머신러닝] 접미사 트라이(Suffix trie), 접미사 트리(Suffix tree) ,나이브 베이즈(Naive Bayes)- 컴도리돌이 Suffix trie Suffix tree Definition Construction with Naive algorithm 접미사 트라이(Suffix trie) edge가 문자를 가진 문자열 모음을 가진 그래프를 트라이(trie)라고 한다. 접미사 트라이(Suffix trie)는 접미사 트리(Suffix Tree)의 일반화된 개념이며, 문자열을 저장하기 위한 트리이다. 트라이 구축(trie Construction): O(|patterns|) 패턴 매칭 : O(|Text| * |LongestPattern|) text T(abaaba)의 모든 접미사(루트에서 리프까지)를 포함하는 트리로 예를 들어보자. 접미사 트리(Suffix tree) 접미사 트리(suffix tree)는 주어진 텍스트의 모든 접미사를 포.. 더보기
[머신러닝] BWT(Burrows- Wheeler Transform)알고리즘- 컴도리돌이 Burrows-Wheeler transform (BWT) Transform LF mapping Reversing with BWT Searching with table occurrence and count BWT (Burrows-Wheeler transform) 블록 정렬 알고리즘으로 변환 결과에 Index 정보가 포함되어 있어, 다른 정보가 없더라도 변환된 문자열의 경우 유사한 문자열들끼리 뭉쳐진 형태로 나타나는 경우가 많아 압축을 위한 전처리 알고리즘 동일한 문자를 조합(block-sorting compression) 데이터 압축에 사용(예: bzip2) 압축성을 항상 향상하는 것은 아니다. 변환은 되돌릴 수 있다. 패턴의 위치를 효율적으로 찾다(O|pattern|) 변환(Transform) - ex).. 더보기

728x90