-
[정렬 알고리즘] 국영수 ★☆☆Algorithms/Sorting 2021. 3. 5. 11:26
기출 : 백준 #10825
STL에서 제공하는 sort함수를 이용해 문제를 풀었다
이번 문제를 풀면서 알게 된 점은 바로 string 함수끼리 비교가 가능하다는 것이었다
string s1, s2;
return s1>s2
위 코드를 실행시키면 자동으로 문자를 하나씩 비교하여 아스키 코드를 오름차순으로 비교해준다
#include<bits/stdc++.h> using namespace std; struct student { string name; int kuk; int young; int su; student(string n, int k, int y, int s) : name(n), kuk(k), young(y), su(s) {} }; vector<student> v; int n; bool cmp(student s1, student s2){ if (s1.kuk > s2.kuk) return true; else if (s1.kuk < s2.kuk) return false; else { if (s1.young < s2.young) return true; else if (s1.young > s2.young) return false; else { if (s1.su > s2.su) return true; else if (s1.su < s2.su) return false; else { return s1.name < s2.name; } } } } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 0;i < n;i++) { string str; int k, y, s; cin >> str >> k >> y >> s; student stu(str, k, y, s); v.push_back(stu); } sort(v.begin(), v.end(), cmp); for (int i = 0;i < v.size()-1;i++) { cout << v[i].name<<"\n" ; } cout << v[v.size() - 1].name; return 0; }
'Algorithms > Sorting' 카테고리의 다른 글
[정렬 알고리즘] 실패율 ★☆☆ (0) 2021.03.05 [정렬 알고리즘] 안테나 ★☆☆ (0) 2021.03.05 [정렬 알고리즘] 두 배열의 원소 교체 ★☆☆ (0) 2021.02.13 [정렬 알고리즘] 성적이 낮은 순서로 학생 출력하기 ★☆☆ (0) 2021.02.13 [정렬 알고리즘] 문제풀이 전략 (0) 2021.02.13