전체 글

C++/C++

11. 클래스의 활용

◆연산자 오버로딩 연산자를 오버로딩하는것을 뜻한다. int의 덧셈과 string의 덧셈은 구체적으로 다르나 이를 피연산자로 구분하는 오버로딩을 사용함으로 쓰기 용이하게 해준다. ●연산자 함수의 형식은 다음과 같다. operatorop(argument-list)//op는 오버로딩할 연산자를 나타내는 기호이다. operator+() op는 오버로딩할 연산자를 나타내는 기호이다. 단, op는 적법한 C++ 연산자여야 한다. @와 같은 없는 연산자를 넣으면 안된다. ◆Price 라는 클래스를 가지고, a와 b가 모두 Price 이라면 Price c = a + b;//연산자 표기 Price c = a.operator+(b);//함수 표기 ◆연산자 오버로딩 선언시 형식 class Time { public: Time..

C++/C++

10. 객체와 클래스

◆OOP 프로그래머는 객체를 서술하는 데 필요한 데이터와, 사용자가 그 데이터를 다루는 방법에 대해서 생각하면서, 사용자가 이해하는 방식대로 객체에 초점을 맞춘다. ◆데이터 은닉(data hiding) 프로그램이 직접 데이터에 접근하지 못하게 차단하는 것 ◆캡슐화(encapsulation) ●세부적인 구현들을 따로 결합하여 추상화화 분리하는 것이다. 데이터 은닉은 캡슐화의 한 예이다. 또 다른 예는 클래스 함수들의 정의를 클래스 선언과 독립된 파일에 넣는 것이다. ◆클래스 ◆클래스 설계 public 인터페이스와 세부적인 구현을 private에 분리하려고 노력한다. public 인터페이스는 설계의 추상화를 나타낸다. ◆클래스의 접근제한자 ●private 클래스 내부에서만 접근할 수 있다. 클래스 객체에 대..

코딩 공부/TIL

[알고리즘]정렬

◆◆정렬의 개념 ◆정렬의 개념 ●정렬의 정의 ▷다수의 데이터를 일정항 규칙에 따라 순서대로 나열하는 방법이다. - 오름차순(Ascending Order) : 작거나 앞선 데이터부터 순서대로 나열 - 내림차순(Descending Orde) : 크거나 뒷선 데이터부터 역순으로 나열 ●정렬의 종류별 시간 복잡도 정렬 방식 평균 최악 삽입 정렬 O(N²) O(N²) 버블 정렬 O(N²) O(N²) 선택 정렬 O(N²) O(N²) 쉘 정렬 O(N^1.5) O(N²) 힙 정렬 O(NlogN) O(NlogN) 이진 병합 정렬 O(NlogN) O(NlogN) 퀵 정렬 O(NlogN) O(N²) //로직 추가로 O(NlogN) 가능 버킷 정렬 O(D+N) O(N²) 계수 정렬(Counting sort) O(N+K) O(..

코딩 공부/TIL(Today I Learn)

[빠른 C++][백준 15552] 빠른 A+B

잊기 전에 메모해 두려고 한다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, 1. cin.tie(NULL)과 //cin과 cout 버퍼 동기화 해제 2. sync_with_stdio(false)를 둘 다 적용해 주고, //C식 입출력 해제 3. endl 대신 개행문자(\n)를 쓰자. //문자열 처리 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. 단, 1을 진행할 경우 입출력의 순서가 라인과 달라질 수 있다.

메카인
메카인의 지식창고