백준 25206 c++

개발공부·2023년 6월 8일
0

문제 사이트

[조건]

  • 예제 입력 시 아래처럼 진행되므로 string, double, string으로 입력 받음

    ObjectOrientedProgramming1 3.0 A+

  • 총 20줄에 걸쳐서 진행, 3.0인 숫자와 A+인 문자를 각각 계산해서 넣는 것이 핵심 = map 사용

map<string, double> mp;

  • 동시에 "P" 등급일 경우 계산에서 제외함

[코드]

#include <bits/stdc++.h>
using namespace std;
map<string, double> mp;

int main() {
	cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
	mp.insert({ "A+", 4.5 });
	mp.insert({ "A0", 4.0 });
	mp.insert({ "B+", 3.5 });
	mp.insert({ "B0", 3.0 });
	mp.insert({ "C+", 2.5 });
	mp.insert({ "C0", 2.0 });
	mp.insert({ "D+", 1.5 });
	mp.insert({ "D0", 1.0 });
	mp.insert({ "F", 0.0 });

	double result = 0;
	double score_sum = 0;

	for(int i=1; i<=20; i++) {
		string name;
		double score;
		string grade;
		cin >> name >> score >> grade;
		if (grade == "P") continue;
		result += score * mp[grade];
		score_sum += score;
	}
	result /= score_sum;

	cout << fixed << setprecision(6);
	cout << result;

	return 0;
}
profile
개발 블로그, 티스토리(https://ba-gotocode131.tistory.com/)로 갈아탐

0개의 댓글