본인이 PS를 하면서 자주 사용하는 STL들을 정리하겠습니다. 1. vector동적배열이다. 임의의 위치에 있는 원소 접근과, 뒤에서 원소를 추가하는 연산은 O(1)(분할상환분석)을 보장한다. 2. stack스택 자료구조이다. 3. queue큐 자료구조이다. 4. deque동적배열이다. 임의의 위치에 있는 원소 접근과, 앞과 뒤에서 원소를 추가하는 연산은 O(1)을 보장한다. 5. set균형잡힌 이진트리이다. 원소 삽입과 삭제, 탐색 등의 연산은 O(logn)을 보장한다. 6. pair2개의 데이터를 저장할 수 있는 변수이다. 비교 연산시 1순위 first 2순위 second로 판별한다. 7. map딕셔너리 자료구조이다. 원소 삽입과 삭제, 탐색 등의 연산은 O(logn)을 보장한다. 8. algorit..
** 본문은 C에 대한 기본적인 이해가 있음을 가정하고 작성하였습니다. 기본적으로 a+b연산을 하는 코드는 다음과 같다. 헤더파일은 C의 헤더파일을 모두 사용할 수 있고 거기에 추가적으로 stl 컨테이너들도 사용할 수 있다.using namespace std; 문장은 c++에서 사용되는 문법으로 이름공간중 std라는 이름공간을 그냥 사용하겠다는 뜻이다.이 문장이 없다면 std 이름공간에 포함된 cin이나 cout함수는 std::cin과 std::cout 등과 같은 방법으로 사용해야 한다.이러한 타이핑의 귀찮음을 없애기 위해 위 문장을 헤더파일 밑에 선언한다. 헤더파일은 cin, cout 등 c++에서의 기본 입출력 함수및 기타 등등을 포함하는 기본적인 헤더파일이다.cin은 입력 함수이다. 별도의 입력타입..
** 평소 생각하던 문제 해결 전략들을 적어나갈 생각이다. 1. x좌표와 y좌표를 분리해서 생각하기x좌표만 있다고 생각하고 문제를 더 쉽게 풀어보고 이후에 y좌표를 추가하면 어떻게 풀 수 있는지 생각하는 접근 방법이다. 2. 순서를 강제하기주어진 문제가 임의의 순서를 추가 하였을 때 더 쉽게 접근할 수는 없는지 생각해보는 접근이다.보통 dp문제에서 많이 사용하는 접근 방법이다. 3. 주어진 문제를 반으로 나누기주어진 문제를 반으로 나누었을 때 왼쪽 범위에서 시작하고 오른쪽 범위에서 끝나는 답을 비교적 구하기 쉬운지 \(O(n)\)판단하여 분할정복으로 푸는 접근 방법이다. 4. 뒤에서부터 생각하기보통 앞에서 부터 결정하면 결정하기 난해한 문제들은 뒤에서부터 결정하였을 때 쉽게 풀리는 경우도 있다. 5. 일..