https://www.acmicpc.net/problem/25206
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
map<string, double> grade_map = {
{"A+", 4.5},
{"A0", 4.0},
{"B+", 3.5},
{"B0", 3.0},
{"C+", 2.5},
{"C0", 2.0},
{"D+", 1.5},
{"D0", 1.0},
{"F", 0.0},
{"P", -1.0}
};
int num_subjects = 0;
double total_score = 0.0;
double total_credit = 0.0;
while (true) {
string subject_name;
double credit;
string grade;
cin >> subject_name;
if (cin.eof()) {
break;
}
cin >> credit >> grade;
if (grade_map[grade] >= 0) {
num_subjects++;
total_score += credit * grade_map[grade];
total_credit += credit;
}
}
cout.precision(6);
cout << fixed << (total_credit == 0.0 ? 0.0 : total_score / total_credit) << endl;
return 0;
}
'Coding > 백준 온라인 저지 (Baekjoon Online Judge)' 카테고리의 다른 글
백준 온라인 저지(Baekjoon Online Judge) - 12100 : 2048 (Easy) (0) | 2023.04.12 |
---|---|
백준 온라인 저지(Baekjoon Online Judge) - 10798 : 세로읽기 (0) | 2023.04.12 |
백준 온라인 저지(Baekjoon Online Judge) - 10988 : 팰린드롬인지 확인하기 (0) | 2023.04.12 |
백준 온라인 저지(Baekjoon Online Judge) - 18258 : 큐 2 (0) | 2023.04.12 |
백준 온라인 저지(Baekjoon Online Judge) - 10811 : 바구니 뒤집기 (0) | 2023.04.12 |