SW ExpertAcademy/D2
1983. 조교의 성적 매기기
Programmer.
2018. 12. 1. 14:59
1983. 조교의 성적 매기기
문제출처: https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PwGK6AcIDFAUq
풀이 방법
<코드>
#include <algorithm> #include <iostream> #include <vector> using namespace std; struct Data { int number; float score; }; bool Compare(const Data& left, const Data& right) { return left.score < right.score; } int main(int argc, char** argv) { std::ios::sync_with_stdio(false); std::cout.tie(nullptr); std::cin.tie(nullptr); int test_case; int T; cin >> T; for (test_case = 1; test_case <= T; ++test_case) { int n, k; std::cin >> n >> k; std::vector<Data> inputs(n); for (int i = 0; i < n; i++) { int mid, final, homework; std::cin >> mid >> final >> homework; inputs[i].number = i + 1; inputs[i].score = mid * 0.35f + final * 0.45f + homework * 0.2f; } std::sort(inputs.begin(), inputs.end(), Compare); int answer = 0; for (int i = 0; i < n; i++) if (inputs[i].number == k) answer = i; switch ((answer / (n / 10)) % 10) { case 0: std::cout << "#" << test_case << " D0" << "\n"; break; case 1: std::cout << "#" << test_case << " C-" << "\n"; break; case 2: std::cout << "#" << test_case << " C0" << "\n"; break; case 3: std::cout << "#" << test_case << " C+" << "\n"; break; case 4: std::cout << "#" << test_case << " B-+" << "\n"; break; case 5: std::cout << "#" << test_case << " B0" << "\n"; break; case 6: std::cout << "#" << test_case << " B+" << "\n"; break; case 7: std::cout << "#" << test_case << " A-" << "\n"; break; case 8: std::cout << "#" << test_case << " A0" << "\n"; break; case 9: std::cout << "#" << test_case << " A+" << "\n"; break; } } return 0;//정상종료시 반드시 0을 리턴해야합니다. }