본문 바로가기

분류 전체보기

(96)
애드혹(AD-HOC) 핵심 요약 해당 문제를 풀기 위해서 잘 알려진 정교한 알고리즘을 적용하지 않고 해결할 수 있는 유형 즉, 하드 코딩(hard-coding)을 뜻함. 구현, 그리디, 수학 등의 유형의 문제들 이 유형의 문제는 창의적인 아이디어가 필요하다!
[C++] 페어(PAIR) 핵심요약한 공간에 2개의 값을 저장할 수 있게 해주는 클래스2개의 값이 묶여서 이동하면 좋겠다고 생각할 때 사용하면 좋다. 헤더파일#include //1번 방법#include //2번 방법, vector 헤더파일 안에 유틸리티가 들어있다.pair 변수명; 데이터 생성 및 참조pair p;p = make_pair(data1, data2); // 첫 번째 방법p = {data1, data2}; // 두 번째 방법p.first //첫 번째 data값 = data1p.second //두 번째 data값 = data2 정렬 관련 tip#include //STL의 sort함수를 사용하기 위해//first값을 기준으로 할 때sort(vec.begin(), vec.end()); //vec이라는 자료구조의 정..
[C++] 데큐(DEQUE) 핵심요약 앞뒤로 원소의 삽입, 삭제가 가능한 자료구조 원형큐 관련 문제에서 유용 기본 정의 vector와 같이 배열 기반의 구조이지만 vector의 단점을 보완 메모리가 부족할 때 새로운 메모리 블럭을 할당 ⇒ 삽입 시 성능 저하 X 헤더파일 및 선언 #include deque 변수명; 생성자 deque dq; //비어있는 deque dq를 생성 deque dq(10); //default(0) 값으로 초기화 된 10개의 원소를 가진 dq를 생성 deque dq(10, 4); //4의 값으로 초기화된 10개의 원소를 가진 dq를 생성 deque dq2(dq1); //dq1을 복사한 dq2를 생성. 삽입 및 삭제 관련 멤버함수 dq.clear(); //모든 원소를 제거합니다. dq.push_front(), ..
[C++] 우선순위 큐(PRIORITY_QUEUE) 핵심 요약우선 순위에 따라 정렬된 queue이다.heap으로 구현되어 있어, 특정 원소를 push할 때 생기는 정렬의 시간 복잡도는 logN에 실현된다.헤더파일 및 선언#include //라는 헤더파일을 따로 사용하지 않는다.priority_queue 변수명; //선언한 자료형 변수들을 비교함수에 따라 정렬.priority_queue, greater> pq; //올림차순, 가장 앞에 제일 작은 수가 오게된다.priority_queue pq; //내림차순, 가장 앞에 제일 큰 수가 오게된다.관련 함수(삽입, 삭제 등)priority_queue pq;pq.push(변수); //변수를 넣는다.pq.pop(); //맨 앞의 원소를 제거.pq.top(); //맨 앞의 원소를 반환.pq.empty(); //비어있..
[C++] 스택(STACK) 핵심요약 FILO(First In Last Out) 구조 괄호 문제와 같이 짝을 이루는 입력이 있을 때 주로 사용됨. 사용법 #include stack 변수명; //선언 문자열(string)? c++에서의 문자열(string)도 스택과 동일하게 사용이 가능하다.
[C++] 자료형에 따른 숫자 범위 핵심요약 1바이트 char: -128 ~ 127 unsigned char: 0 ~ 255 2바이트 short: -32,768 ~ 32,767 unsigned short: 0 ~ 65,535 4바이트 int, long: -2,147,483,648 ~ 2,147,483,647 unsigned int, unsigned long: 0 ~ 4,294,967,295 8바이트 long long: -9,222,372,036,854,775,808 ~ 9,222,372,036,854,775,807 unsigned long long: 0 ~ 18,446,744,073,709,551,615
[C++] 구조체(STRUCT) 핵심요약 클래스와 유사하게 사용이 가능하다. 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것. 코드의 가독성을 높일 수 있다. 선언 및 정의(예제) struct Student //정의 { short id; int age; double score; }; Student minsu; //선언 위 코드는 컴파일러에 Student 구조체를 정의한다고 말한다. 일반적으로 구조체 이름은 대문자로 시작하여 변수 이름과 구분한다. Student 구조체는 세 개의 변수(short id, int age, double score)를 포함한다. 구조체의 일부인 이러한 변수를 멤버(member) 또는 필드(field)라고 한다. Student 는 단지 구조체 자료형에 불과하다. 컴파일러에 구조체에 멤버 변수가 있을 ..
[C++] 파일의 끝(EOF)까지 입력받기 정수 #include //cin.eof() using namespace std; int main() { int n; while (!cin.eof()) { //EOF를 만날때까지 무한 입력 cin >> n; } return 0; } string(문자열) #include using namespace std; int main(){ string s; while(getline(cin, s)){ } return 0; } 이 밖에도 다양한 방법이 있는 것 같지만 일단 이정도로 알아보도록 하자.