백준/심화

25206: 너의 평점은 / C++

Koalitsiya 2023. 3. 9. 18:21

문제

 

풀이

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;
}