PS/정렬 알고리즘[Sort] 18

백준 2204 도비의 난독증 테스트(c++)

https://www.acmicpc.net/problem/2204 2204번: 도비의 난독증 테스트 꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실 www.acmicpc.net #include #include #include #include using namespace std; int main() { int n; while(1) { cin>>n; if(!n) break; vectorv; vectorv2; for(int i=0;i>s; v.push_back(make_pair(s,i)); for(int i=0;i

백준 1764 듣보잡(c++)

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net #include #include #include #include using namespace std; int main() { int n,m; cin>>n>>m; vectors1; vectors2; vectorresult; for(int i=0;i>a; s1.push_back(a); } for(int i=0;i>b; s2.push_back(b); } sort(s1.begin(),s1.end());..

백준 10825 국영수(c++)

https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net #include #include #include #include #include using namespace std; vectorv; bool cmp(tuple&v1,tuple&v2) { if(get(v1) == get(v2) && get(v1) == get(v2) && get(v1) == get(v2)){ return get(v1)get(v2); } //국 == 영 else..

백준 1377 버블소트(c++)

https://www.acmicpc.net/problem/1377 1377번: 버블 소트 첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net #include #include #include using namespace std; int main() { int n; cin>>n; vectorv(n); for(int i=0;i>v[i].first; v[i].second = i; } sort(v.begin(),v.end()); int ans = -1; for(int i=0;i

백준 2628 종이자르기(c++)

https://www.acmicpc.net/problem/2628 2628번: 종이자르기 아래 과 같이 직사각형 모양의 종이가 있다. 이 종이는 가로방향과 세로 방향으로 1㎝마다 점선이 그어져 있다. 가로 점선은 위에서 아래로 1번부터 차례로 번호가 붙어 있고, 세로 점선 www.acmicpc.net #include #include #include using namespace std; int main() { int n,m,t; cin>>n>>m; cin>>t; // 자르는 횟수 vectorwidth(n); // 가로 vectorlength(m); // 세로 for(int i=0;i>a>>b; if(a==0) length.push_back(b); if(a==1) width.push_back(b); } wi..

백준 11652 카드(c++)

https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net #include #include #include #include using namespace std; long long cmp(paira,pairb) { if(a.second == b.second) return a.firstb.second; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin>>n; mapm; ..

백준 2805 나무 자르기(c++)

https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net #include #include #include #include using namespace std; int main() { int n,m; cin>>n>>m; vectortree; for(int i=0;i>a; tree.push_back(a); } int l = 0; int r = *max_element(tree.begin(),tree.end()); int..

백준 2776 암기왕(c++)

https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net #include #include #include using namespace std; int main() { vectorv1; vectorv2; int t; cin>>t; while(t--) { int n; cin>>n; for(int i=0;i>a; v1.push_back(a); } int m; cin>>m; for(int i=0;i>b; v2.push_back(b); } sort(v1.begin()..

백준 1015 수열 정렬(c++)

https://www.acmicpc.net/problem/1015 1015번: 수열 정렬 P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주 www.acmicpc.net #include #include #include #include #include using namespace std; int main() { int n; cin>>n; vectorv; for(int i=0;i>a; v.push_back(make_pair(a,0)); } for(int i=0;ii && v[j].first==v[i].first) ..

18870 좌표 압축(c++)

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin>>n; vectorv; vectorv2; for(int i=0;i>num; v.push_back(num); v2.pu..