문제

 

풀이

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

+ Recent posts