-pair를 사용하면 편하다. 1. pair 1) 정의이름이 'first', 'second' 인 두 개의 변수를 저장할 수 있는 struct 2) 용도-이차원 배열의 인덱스-이차원 좌표평면에서의 좌표 (V)-정점 번호와 해당 정점 번호까지의 최단거리를 묶어서 저장해야 되는 경우 3) 사용법// pair 선언 및 생성pair p = make_pair(1, 2); //pair의 멤버 변수에 접근int valA = p.first;int valB = p.second; 2. vector1) 정의사이즈가 유동적인 배열 2) 용도-배열을 사용하는 모든 경우 3) 사용법- include 4) 멤버 함수v.size() : 사이즈 리턴v.resize(new_size) : 사이즈 변경v.empty() : 사이즈가 0인지 확..
1. 정렬-많은 정렬 알고리즘이 있다.-선택 정렬, 삽입 정렬, 버블 정렬(stable) : O(N^2)-퀵 정렬, 힙 정렬, 병합 정렬(stable) : O(NlogN)-정렬은 O(NlogN)이 걸리는 정렬을 사용하는 것으로 한다.-정렬을 직접 구현하는 것 보다는 STL에 있는 sort를 사용하는 것이 좋다.-sort(begin, end) =>begin 부터 end 바로 전까지 정렬하는 함수=>[begin, end) 까지 정렬 2. sort 함수 1)배열 정렬int n = 10;int a[10] = {};sort(a,a+n); // a[0] 부터 a[n-1] 까지 정렬 2)vector 정렬vector a;sort(a.begin(), a.end()); 3. 2751번(수 정렬하기 2)1)STL sort#..
1. 소인수분해-정수 N을 소수의 곱으로 분해-소수를 구하지 않고도 해결할 수 있다.-N을 소인수분해 했을 때, 나타날 수 있는 인수 중에서 가장 큰 값은 루트 N-따라서 2부터 루트 N 까지 for문을 돌면서-N을 나눌 수 있으면, 나눌 수 없을 때까지 계속해서 나누면 된다. (코드)for(int i=2;i*i1){printf("%d\n",n);} -11653번(소인수분해) 2. 팩토리얼-N! = 1*2*3*...*N-팩토리얼은 매우 큰 값-10!=3628800-10872번(팩토리얼) 3. 1676번(팩토리얼 0의 개수)-10!이 0이 2개인 이유는 10!을 소인수분해 해보면 알 수 있다.-10!=(2^8)*(3^4)*(5^2)*7여기서 (2*5)^2 = 10^2 이므로 0은 2개-즉, N! 의 0이 ..