10825λ²: κ΅μμ
첫째 μ€μ λνμ΄λ€ λ°μ νμμ μ N (1 ≤ N ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° ν μ€μ νλμ© κ° νμμ μ΄λ¦, κ΅μ΄, μμ΄, μν μ μκ° κ³΅λ°±μΌλ‘ ꡬλΆν΄ μ£Όμ΄μ§λ€. μ μλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 1
www.acmicpc.net
#include <iostream>
#include <vector>
#include <algorithm>
#include <tuple>
using namespace std;
bool cmp(tuple<string, int, int, int>a, tuple<string, int, int, int>b) {
if (get<1>(a) == get<1>(b)) { //κ΅μ΄ μ μκ° κ°μλ
if (get<2>(a) == get<2>(b)) { //κ΅μ΄μ μμ μμ΄μ μκ° κ°μλ
if (get<3>(a) == get<3>(b)) { //κ΅μ΄,μμ΄,μν μ μκ° κ°μλ
return get<0>(a) < get<0>(b); //μ¬μ μμΌλ‘ μΆλ ₯
}
return get<3>(a) > get<3>(b); //μνμ μκ° κ°μνλ μμΌλ‘ μΆλ ₯
}
return get<2>(a) < get<2>(b); //μμ΄ μ μκ° μ¦κ°νλ μμΌλ‘ μΆλ ₯
}
else return get<1>(a) > get<1>(b); //κ΅μ΄ μ μκ° λ€λ₯Όλ κ°μνλ μμΌλ‘ μΆλ ₯
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int N; cin >> N;
vector<tuple<string, int, int, int>>v;
while (N--) {
string name;
int kor, eng, math;
cin >> name >> kor >> eng >> math;
v.push_back(make_tuple(name, kor, eng, math));
}
sort(v.begin(), v.end(), cmp);
for (int i = 0; i < v.size(); i++) {
cout << get<0>(v[i]) << "\n";
}
}
'Algorithm π§π»βπ» > λ°±μ€(BOJ)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€,c++] 10866λ² - λ± (0) | 2021.10.25 |
---|---|
[λ°±μ€,c++] 10845λ² - ν (0) | 2021.10.25 |
[λ°±μ€,c++] 10828λ² - μ€ν (0) | 2021.10.25 |
[λ°±μ€,c++] 10824λ² - λ€ μ (0) | 2021.10.25 |
[λ°±μ€,c++] 10823λ² - λνκΈ°2 (0) | 2021.10.24 |
[λ°±μ€,c++] 10822λ² - λνκΈ° (0) | 2021.10.24 |
λκΈ