문제
풀이
map 자료구조를 통해 등급을 key, 등급에 따른 과목평점을 value로 저장하고 등급이 P인 경우를 제외한 각 입력에서 학점과 학점 x 과목평점을 구한 뒤 학점 x 과목평점을 학점으로 나눈 값을 출력한다.
#include <iostream>
#include <string>
#include <map>
using namespace std;
map<string, double> m;
int main() {
string course, grade;
double score, score_sum = 0, result = 0;
m.insert({ "A+", 4.5 });
m.insert({ "A0", 4.0 });
m.insert({ "B+",3.5 });
m.insert({ "B0", 3.0 });
m.insert({ "C+", 2.5 });
m.insert({ "C0", 2.0 });
m.insert({ "D+", 1.5 });
m.insert({ "D0", 1.0 });
m.insert({ "F", 0.0 });
for (int i = 0; i < 20; i++) {
cin >> course >> score >> grade;
if (grade == "P") continue;
score_sum += score;
result += score * m[grade];
}
cout << fixed;
cout.precision(6);
cout << result / score_sum;
return 0;
}
'백준 > 심화' 카테고리의 다른 글
1316: 그룹 단어 체커 / C++ (0) | 2023.03.09 |
---|---|
2941: 크로아티아 알파벳 / C++ (0) | 2023.03.09 |
4344: 평균은 넘겠지 / C++ (0) | 2023.03.09 |
1157: 단어 공부 / C++ (0) | 2023.03.09 |
10988: 팰린드롬인지 확인하기 / C++ (0) | 2023.03.09 |