๋ฌธ์
๋ํ์ด๋ค ๋ฐ ํ์ N๋ช ์ ์ด๋ฆ๊ณผ ๊ตญ์ด, ์์ด, ์ํ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋, ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ผ๋ก ํ์์ ์ฑ์ ์ ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ๊ตญ์ด ์ ์๊ฐ ๊ฐ์ํ๋ ์์๋ก
- ๊ตญ์ด ์ ์๊ฐ ๊ฐ์ผ๋ฉด ์์ด ์ ์๊ฐ ์ฆ๊ฐํ๋ ์์๋ก
- ๊ตญ์ด ์ ์์ ์์ด ์ ์๊ฐ ๊ฐ์ผ๋ฉด ์ํ ์ ์๊ฐ ๊ฐ์ํ๋ ์์๋ก
- ๋ชจ๋ ์ ์๊ฐ ๊ฐ์ผ๋ฉด ์ด๋ฆ์ด ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก (๋จ, ์์คํค ์ฝ๋์์ ๋๋ฌธ์๋ ์๋ฌธ์๋ณด๋ค ์์ผ๋ฏ๋ก ์ฌ์ ์์ผ๋ก ์์ ์จ๋ค.)
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ํ์ด๋ค ๋ฐ์ ํ์์ ์ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ ํ ์ค์ ํ๋์ฉ ๊ฐ ํ์์ ์ด๋ฆ, ๊ตญ์ด, ์์ด, ์ํ ์ ์๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด ์ฃผ์ด์ง๋ค. ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ์ด๋ฆ์ ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด๊ณ , ๊ธธ์ด๋ 10์๋ฆฌ๋ฅผ ๋์ง ์๋๋ค.
์ถ๋ ฅ
๋ฌธ์ ์ ๋์์๋ ์ ๋ ฌ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ํ ์ฒซ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ํ์์ ์ด๋ฆ์ ์ถ๋ ฅํ๋ค.
ํ์ด
sort๋ฅผ ์ด์ฉํด ์ ๋ ฌ์ ํด์ฃผ๋๋ฐ ์ด๋ Compare comp ๋ฅผ ์ ์ค์ ํด์ฃผ๋ฉด ์ฝ๊ฒ ํ์ดํ ์ ์๋ค.
bool cmp(student a, student b) {
if(a.kor == b.kor) {
if(a.eng == b.eng) {
if(a.math == b.math) {
return a.name < b.name;
}
return a.math > b.math;
}
return a.eng < b.eng;
}
return a.kor > b.kor;
}
๋ง ๊ทธ๋๋ก ํผ๋ค๋ฉด ์ด๋ ๊ฒ ๊ตฌํ์ด ๊ฐ๋ฅํ๊ฒ ์ง๋ง...
๋ณด๊ธฐ ๋๋ฌด ์์ข๋ค
bool cmp(student a, student b) {
if(a.kor != b.kor) return a.kor > b.kor;
if(a.eng != b.eng) return a.eng < b.eng;
if(a.math != b.math) return a.math > b.math;
else return a.name < b.name;
}
๊ฐ ์ ์๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ์ ์กฐ๊ฑด์ ์ฒ๋ฆฌํด์ฃผ๋๋ก ๋ฐ๊พธ๋ฉด ์ฝ๋๊ฐ ๋์ฑ ๊น๋ํด์ง๋ค
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct student {
string name;
int kor, eng, math;
};
bool cmp(student a, student b) {
if(a.kor != b.kor) return a.kor > b.kor;
if(a.eng != b.eng) return a.eng < b.eng;
if(a.math != b.math) return a.math > b.math;
else return a.name < b.name;
}
int main() {
int n;
cin >> n;
vector<student> v(n);
for(int i=0; i<n; i++) cin >> v[i].name >> v[i].kor >> v[i].eng >> v[i].math;
sort(v.begin(), v.end(), cmp);
for(int i=0; i<n; i++) cout << v[i].name << "\n";
return 0;
}
/*
*/
'๐๏ธ ICPC Sinchon > Sorting' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S1][C++] ๋ฐฑ์ค 1946๋ฒ : ์ ์ ์ฌ์ (0) | 2022.09.06 |
---|---|
[BOJ S4][C++] ๋ฐฑ์ค 1026๋ฒ : ๋ณด๋ฌผ (0) | 2022.09.06 |
[BOJ S3][C++] ๋ฐฑ์ค 1431๋ฒ : ์๋ฆฌ์ผ ๋ฒํธ (0) | 2022.09.06 |
[BOJ S4][C++] ๋ฐฑ์ค 1758๋ฒ : ์๋ฐ์ ๊ฐํธ (0) | 2022.09.06 |
[BOJ S5][C++] 11651๋ฒ: ์ขํ ์ ๋ ฌํ๊ธฐ 2 (0) | 2022.09.06 |